我的 C# 实体框架项目出没了吗?

Posted

技术标签:

【中文标题】我的 C# 实体框架项目出没了吗?【英文标题】:Is my C# Entity Frameworks project haunted? 【发布时间】:2017-07-04 09:54:49 【问题描述】:

我正在开发 .NET MVC 解决方案,当使用包管理器控制台Add-Migration 或更新 SQL 服务器时出现以下错误。

System.TypeInitializationException:类型初始化器 'System.Data.Entity.SqlServer.SqlProviderServices' 引发异常。 ---> System.TypeLoadException:“System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy”类型中的方法“ExecuteAsync”来自 程序集 'EntityFramework.SqlServer,版本 = 6.0.0.0,文化 = 中性, PublicKeyToken=b77a5c561934e089' 没有实现。

有趣的是,如果代码在同事的计算机上运行(即从 git 提取时)或放入新项目时,代码就可以工作。解决方案中的其他项目可以在包管理器控制台中正常工作。

创建此项目时,在 .Net 目标框架从 4 更改为 4.5 之前安装了 Entity Frameworks 6.1.3。这似乎是问题的原因,作为一个新项目,在安装实体框架之前使用目标框架集创建,工作正常。

我们已经尝试过:

重新安装 Entity Frameworks 6.1.3(实际上是删除和恢复所有 nuget 包) 删除本地分支并从文件系统中删除文件,然后从 git 中提取代码(在同事的 PC 上工作) 使用 nuget 命令行清除所有本地缓存​​的包 上述多种组合

在所有情况下,错误仍然存​​在。

必须有一个位置存储更多与项目相关的数据或配置,这些数据或配置不受 git 管理并且导致错误。关于这些数据或配置的存储位置有什么想法吗?

【问题讨论】:

正如同事所说,我对此感到困惑。任何人都可以散发的任何光芒将不胜感激! 你见过this question吗? 您可以尝试删除位于 .sln 文件旁边的 .suo 文件。也许一开始只是尝试移动/重命名它,这样你就可以把它放回去。 Details on the .suo file 【参考方案1】:

我还不能评论,需要 50 xp。

无论如何,请检查您的应用程序/网络配置文件,看看 EF 的版本是否仍然相同。如果是这样 dubbelcheck 您的引用,您甚至可能需要删除它们并从您的包文件夹中手动添加它们。

【讨论】:

以上是关于我的 C# 实体框架项目出没了吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过实体框架从 C# 中的同步代码并行运行查询

C#:更改实体框架的检索数据类型

实体框架 6:审计/跟踪更改

C# - 实体框架代码优先,延迟加载不起作用

映射不区分大小写 - 代码优先 - 实体框架

在业务逻辑层使用实体框架生成的类