c# - EF 4.3 CodeFirst MVC3 WebApp 和控制台使用相同的模型,但不知何故它们 'see' 是导致模型支持错误的不同模型

标签 c# asp.net-mvc-3 entity-framework-4 windows-services console-application

我对多个应用程序使用相同的模型:MVC3 网络应用程序、Windows 服务和控制台应用程序。当我启动 MVC3 网络应用程序时,它会生成数据库。我可以重新启动它,一切都很好。但是当我启动控制台应用程序时出现错误:

The model backing the '...Context' context has changed since the database was created. Consider using Code First Migrations to update the database (http://go.microsoft.com/fwlink/?LinkId=238269).

当我删除数据库、启动控制台应用程序时会发生同样的情况,我可以重新启动它,一切都很好。当我启动 MVC 网络应用程序时。崩溃:模型支持...等

在 EF4.1 中删除 EdmMeta 表“解决”了这个问题。但是由于 EF4.3 不再有这样的表,所以我无法那样修复它。我检查过所有应用程序都引用相同型号的 dll。我仔细检查过所有项目都引用了 EF4.3,所以这不是问题的原因。

任何建设性的帮助将不胜感激。

问候, 欧文·范戴克。

最佳答案

您不应该让多个应用程序创建数据库 - 这可能会导致您的数据库被意外删除。只需选择一个负责数据库创建和所有其他用途的:

Database.SetInitializer<YourContext>(null);

同时将此添加到派生 DbContext 中的 OnModelCreating:

modelBuilder.Conventions.Remove<IncludeMetadataConvention>();

这应该可以避免哈希计算的问题。

有关散列计算存在问题的原因的更多信息是 described here .

关于c# - EF 4.3 CodeFirst MVC3 WebApp 和控制台使用相同的模型,但不知何故它们 'see' 是导致模型支持错误的不同模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9364788/

相关文章:

c# - session 超时后自动重定向到登录

c# - 在 Universal App 的表格中显示数据

c# - 如何将 LINQ to SQL Distinct() 运算符应用于 List<T>?

ajax - 设置 HttpContext.Current.User

c# - 如何在 'System.Linq' 命名空间中查看静态类 Enumerable 的主体?

c# - 如何计算圆绕球体的曲率(弧)?

asp.net-mvc-3 - 使用存储库模式获取最后插入的行 ID

entity-framework - Entity Framework 代码第一映射(链接)表?

entity-framework - 更新 Entity Framework - 需要修补程序

oracle - PLS-00306 : wrong number or types of arguments in . NET Entity Framework