5

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

断言失败

表达式:primitiveType != null

说明:断言失败:primitiveType != null

它在以下代码行崩溃:

public class MyDb : DbContext {

由以下方式调用:

MyDb _db = new MyDb();

所以它看起来像调用 DbContext 会产生一个致命错误。DbContext 是一个 EF 函数,我无法在 EntityFramework.dll 中进行调试

4

4 回答 4

1

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

于 2012-10-08T12:06:34.170 回答
1

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

删除“EdmMetaData”表并没有解决错误。

于 2012-10-23T12:02:47.493 回答
0

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

于 2012-06-19T18:55:44.703 回答
-1

您需要更新 EntityFramework 版本

于 2016-03-03T13:45:22.933 回答