使用实体框架代码首先,Web应用程序在调用DbContext时崩溃,并出现以下错误:
断言失败
表达式:primitiveType!= null
描述:断言失败:primitiveType!= null
它在以下代码行崩溃:
public class MyDb : DbContext {
由以下人员调用:
MyDb _db = new MyDb();
因此调用DbContext会产生致命错误。 DbContext是一个EF函数,我无法在EntityFramework.dll
中调试答案 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版本