我正在开发 .NET MVC 解决方案,但在使用包管理器控制台添加迁移
或更新 SQL 服务器时出现以下错误。
System.TypeInitializationException: The type initializer for 'System.Data.Entity.SqlServer.SqlProviderServices' threw an exception. ---> System.TypeLoadException: Method 'ExecuteAsync' in type 'System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy' from assembly 'EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' does not have an implementation.
有趣的是,如果代码在同事的计算机上运行(即从 git 中 pull 出)或放入新项目时,代码可以正常工作。解决方案中的其他项目可与包管理器控制台一起正常工作。
创建此项目时,在 .Net 目标框架从 4 更改为 4.5 之前安装了 Entity Frameworks 6.1.3。这似乎是问题的原因,因为在安装 Entity Frameworks 之前使用目标框架集创建的新项目工作正常。
我们已经尝试过:
- 重新安装 Entity Frameworks 6.1.3(实际上是删除并恢复所有 nuget 包)
- 删除本地分支并从文件系统中删除文件,然后从 git 中提取代码(在同事的 PC 上运行)
- 使用nuget命令行清除所有本地缓存包
- 上述的多种组合
在所有情况下,错误仍然存在。
必须有一个位置存储了与项目相关的更多数据或配置,这些数据或配置不受 git 管理并且导致错误。关于这些数据或配置的存储位置有什么想法吗?
最佳答案
我还不能发表评论,需要 50 xp。
无论如何,请检查您的应用程序/网络配置文件,看看 EF 的版本是否仍然相同。如果是这样,请 dubbelcheck 你的引用,你甚至可能需要删除它们并从你的包文件夹中手动添加它们。
关于c# - 我的 C# Entity Frameworks 项目闹鬼了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44902703/