Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# EF 4.3 CodeFirst MVC3 WebApp和console使用相同的模型,但不知何故它们';见';导致模型支持错误的不同模型_C#_Asp.net Mvc 3_Entity Framework 4_Windows Services_Console Application - Fatal编程技术网

C# EF 4.3 CodeFirst MVC3 WebApp和console使用相同的模型,但不知何故它们';见';导致模型支持错误的不同模型

C# EF 4.3 CodeFirst MVC3 WebApp和console使用相同的模型,但不知何故它们';见';导致模型支持错误的不同模型,c#,asp.net-mvc-3,entity-framework-4,windows-services,console-application,C#,Asp.net Mvc 3,Entity Framework 4,Windows Services,Console Application,我对多个应用程序使用相同的模型:MVC3 web应用程序、Windows服务和控制台应用程序。当我启动MVC3 web应用程序时,它会生成数据库。我可以重新启动,一切都很好。但当我启动console应用程序时,我得到一个错误: 支持“…上下文”上下文的模型自 数据库已创建。考虑使用代码第一迁移来更新 数据库(http://go.microsoft.com/fwlink/?LinkId=238269) 当我删除数据库,启动控制台应用程序时,也会发生同样的情况,我可以重新启动它,一切都很好。当我启动

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

支持“…上下文”上下文的模型自 数据库已创建。考虑使用代码第一迁移来更新 数据库(http://go.microsoft.com/fwlink/?LinkId=238269)

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

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

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

问候,,
Erwin van Dijk.

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

Database.SetInitializer<YourContext>(null);
这应该可以避免哈希计算的问题


有关哈希计算问题存在的原因的更多信息,请参阅

确保您在所有项目中使用相同的DbContext。您可以尝试使用EdmxWriter类从两个应用程序中转储Edmx,并比较SSDL部分以查看不同之处。备份数据库,删除它,允许EF生成新数据库,然后进行sql比较。一定有区别。现在发生的情况是“IncludeMetadataConvention”已被折旧?既然已折旧,则不必包含此“modelBuilder.Conventions.Remove();”。只要做他描述的第一步。尽管如此,谢谢你,拉迪斯拉夫,这帮我解决了我的问题。
modelBuilder.Conventions.Remove<IncludeMetadataConvention>();