DbContext与PrimitiveType!= null错误崩溃

时间:2012-05-03 11:15:22

标签: c# entity-framework-4

使用实体框架代码首先,Web应用程序在调用DbContext时崩溃,并出现以下错误:

  

断言失败

     

表达式:primitiveType!= null

     

描述:断言失败:primitiveType!= null

它在以下代码行崩溃:

public class MyDb : DbContext {

由以下人员调用:

MyDb _db = new MyDb();

因此调用DbContext会产生致命错误。 DbContext是一个EF函数,我无法在EntityFramework.dll

中调试

4 个答案:

答案 0 :(得分:1)

这是与旧版EntityFramework相关的问题。有时将Visual Studio项目复制到其他计算机时会发生这种情况。这可能导致应用程序计算与数据库中不同的ModelHash(在EdmMetaData表内)。解决方案是删除EdmMetaData表并使用DbDatabase.SetInitializer<MyContext>( new DropCreateDatabaseIfModelChanges<MyContext>());将其重新放回原位,甚至更好:升级到不使用EdmMetaData表和ModelHashes的较新版本的EntityFramework。

答案 1 :(得分:1)

安装asp.net4.5后我有同样的错误。 对我来说,答案是将实体框架更新为新版本。

删除“EdmMetaData”表未解决错误。

答案 2 :(得分:0)

我切换到linq到sql并没有得到这个错误。不知道实体正在做什么导致这种情况。

答案 3 :(得分:-1)

您需要更新EntityFramework版本