小编Nic*_*k H的帖子

无法在 .Net Standard 2.1 项目中添加 EF 6.4 迁移

我们正处于将大型解决方案移植到 .Net Core(从 4.7.2 开始)的最后阶段,但我们还没有准备好迁移到 Entity Framework Core,因为我们使用每个类型的表层次结构,等等。我们使用 EF 代码优先。因此,包含 DbContext 和 EF 迁移的项目现在正在运行 .netstandard2.1 并引用 EF 6.4(从 v6.3 开始,它显然支持 .net core)。据我了解,EF 工具从 v6.2 更改为 v6.4,因此我们创建 EF 迁移的传统方法现在会在程序包管理器控制台中导致以下错误:

添加迁移测试-项目数据

项目“数据”目标框架“.NETStandard”。实体框架包管理器控制台工具不支持此框架。

经过一番调查,我发现了这个,这表明您需要使用 .Net Core 程序集作为虚拟启动项目。创建 .netcore 3.1 控制台应用程序项目(称为 Data_Startup,它引用 Data 项目)并稍微修改我的命令后,我现在收到以下错误:

dotnet ef 迁移添加 TEST --project Data --startup-project Data_Startup -c CustomContext

未找到名为“CustomContext”的 DbContext。

这看起来至少是在尝试迁移,但我现在陷入困境。我尝试使用命名空间完全限定 DbContext 并将 DBContext 类作为“链接文件”添加到新的虚拟项目中,但我遇到了相同的错误。

我还尝试使用 EF 6.4 工具: dotnet C:\Users\xxxx.nuget\packages\entityframework\6.4.0\tools\netcoreapp3.0\any\ef6.dll" 迁移添加 TEST -- assembly Data

您的目标项目“数据”不引用EntityFramework。实体框架核心工具需要此包才能正常工作。确保您的目标项目正确,安装包,然后重试。

...尽管它肯定安装在数据项目中!

我究竟做错了什么?我实际上需要使用哪个工具?这个项目配置是否可能?

c# entity-framework entity-framework-6 entity-framework-migrations

5
推荐指数
2
解决办法
2421
查看次数