meh*_*dvd 4 c# entity-framework entity-framework-6
我正在使用 EntityFramework,但在某些情况下我会收到此异常:
threw an exception.", inner exception: "Method not found: 'Void System.Data.Entity.DbModelBuilder.RegisterEntityType(System.Type)'.
Run Code Online (Sandbox Code Playgroud)
为什么会出现这个异常呢?
据我发现,当系统预期具有 EF 6.1.3 但引用的 EF 是 6.0.0 时,就会发生此异常。当我通过 nuget 更新 EF 时,它起作用了。问题是在某些情况下我找不到任何 6.0.0
例如,我使用的是第 3 方组件 (XAF),它在 Visual Studio 中有一个设计器。由于此异常,设计器无法加载。我的项目中的EF是6.1.3但我不知道它如何使用6.0.0
问题1:为什么以及何时发生此异常?
小智 5
发生此异常的原因可能是加载的程序集的版本不同。如果 XAF 在其元数据中引用 6.0.0 版本,而您的项目没有引用 6.0.0 版本,则编译器会将 6.0.0 版本加载到 bin 文件夹。
您可以尝试使用如下所示的方法重载应用程序配置文件 (app.config) 中的程序集版本:
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0-6.0.0" newVersion="6.1.3" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5188 次 |
| 最近记录: |