首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用DbContext的TypeLoadException

使用DbContext的TypeLoadException
EN

Stack Overflow用户
提问于 2012-06-01 20:18:58
回答 3查看 2K关注 0票数 2

我有两个项目。第一个项目是dll项目,第二个是mvc4网站。在dll中,我有一个从其中自动生成DbContext的实体数据模型。

在Global.asax中,我用下面这一行初始化db:

代码语言:javascript
复制
System.Data.Entity.Database.SetInitializer( new DropCreateDatabaseAlways<WebConfigEntities>() );

当我启动网站时,我会得到一个TypeLoadException

代码语言:javascript
复制
Server Error in '/' Application.
GenericArguments[0], WebConfigDB.WebConfigEntities, voor System.Data.Entity.IDatabaseInitializer`1[TContext] is in strijd met de beperking van typeparameter TContext.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.TypeLoadException: GenericArguments[0], WebConfigDB.WebConfigEntities, voor System.Data.Entity.IDatabaseInitializer`1[TContext] is in strijd met de beperking van typeparameter TContext.

Source Error:

Line 46: 
Line 47:            BundleTable.Bundles.EnableDefaultBundles();
Line 48:        }
Line 49:    }
Line 50: }


Source File: D:\projecten\MD2400\WebConfig\Global.asax.cs    Line: 48

Stack Trace:

[TypeLoadException: GenericArguments[0], WebConfigDB.WebConfigEntities, voor System.Data.Entity.IDatabaseInitializer`1[TContext] is in strijd met de beperking van typeparameter TContext.]
   WebConfig.MvcApplication.Application_Start() in D:\projecten\MD2400\WebConfig\Global.asax.cs:48

我该如何解决这个问题?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-01 23:23:56

这种类型的错误通常指示不同的程序集以某种方式引用了不同版本的EntityFramework.dll。确保所有项目(以及引用程序集的任何其他内容)都使用完全相同的版本。此外,请确保您在GAC中没有EntityFramework.dll,或者如果您必须在GAC中拥有它,那么它的版本也与所引用的版本相同。

如果您正在使用针对不同版本构建的外部依赖项,并且无法更改此依赖项,则可能需要设置绑定重定向,以确保CLR正确解析该版本。

票数 6
EN

Stack Overflow用户

发布于 2012-06-01 20:52:47

异常的翻译将会有所帮助。在泛型方法调用中指定上下文是否有帮助?如下所示:

代码语言:javascript
复制
System.Data.Entity.Database.SetInitializer<WebConfigEntities>( new DropCreateDatabaseAlways<WebConfigEntities>() );

如何将connectionString传递给WebConfigEntities类?你能把它的构造器贴出来吗?

EntityFramework使用了一些魔法从.config文件中检索connectionString。如果您将模型放在单独的dll中,这可能不会很好地工作。这并不意味着不能将模型放在dll中,当然可以。我已经为几个项目做到了这一点。

票数 0
EN

Stack Overflow用户

发布于 2020-06-09 01:23:39

我犯了一个错误,从EF dll的解决方案资源管理器中获取了版本号,而不是nuget包的版本。因此,我加载了nuget包版本6.0.0而不是6.2.0。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10850119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档