同时使用EF Core和EF6

3
我有一个包含5个项目的.NET Core 3.0解决方案。其中一个项目使用EF6,另一个项目使用EF Core,因此EF6和EF Core同时被使用。Visual Studio尽可能最新(16.3.5)。在我的Windows 10笔记本电脑上尝试为使用EF6的项目创建迁移,并执行Add-Migration命令时,我看到一个警告信息:“已安装Entity Framework 6和Entity Framework Core。正在运行Entity Framework 6工具。对于Entity Framework Core,请使用'EntityFrameworkCore\Update-Database' ",但所有操作都正常进行,迁移成功完成。
Get-Module 命令显示以下表格:
---------- -------    ----                                ----------------                                                                            
Script     6.3.0      EntityFramework6                    {Add-EFDefaultConnectionFactory, Add-EFProvider, Add-Migration, Enable-Migrations...}
Script     3.0.0      EntityFrameworkCore                 {Add-Migration, Drop-Database, Enable-Migrations, Get-DbContext...}
Script     2.0.0.0    NuGet                               {Add-BindingRedirect, Find-Package, Get-Package, Get-Project...}
Script     0.0        profile

在另一台装有Windows 7的工作站上,运行相同的命令时,我看到的表格几乎相同,但是EF6导出的cmdlet列表为空。
---------- -------    ----                                ----------------                                                                            
Script     6.3.0      EntityFramework6                    
Script     3.0.0      EntityFrameworkCore                 {Add-Migration, Drop-Database, Enable-Migrations, Get-DbContext...}
Script     2.0.0.0    NuGet                               {Add-BindingRedirect, Find-Package, Get-Package, Get-Project...}
Script     0.0        profile 

最终,在这种情况下,我无法在EF6项目上执行迁移操作。我该如何解决?'Add-Migration'、'EntityFramework\Add-Migration'和'EntityFrameworkCore\Add-Migration'都无法使用。

更新 2019年10月17日 我认为我的VS安装已经损坏了。好消息是EF6.3带有ef.exe实用程序,可以取代migrate.exe,并允许开发人员在VS IDE之外使用命令行创建迁移。

1个回答

0

使用您的 EF6 或仅限于 EFCore 的关联项目创建额外的解决方案,并执行需要版本特定操作的工作。


根据您的建议,我尝试将依赖EF6.3的项目移动到位于同一目录中的其他解决方案中,然后将该解决方案移动到另一个目录中,然后清除所有项目并删除“bin”和“obj”文件夹,然后尝试使用Uninstall-Package和Install-Package命令重新安装EF,然后从Nuget缓存文件夹中删除EF6并重新安装EF6;最后,我删除了Nuget缓存中的EF6和EF core,并安装了EF6.4预览版。但是没有成功。Get-Module命令仍然显示EF6没有导出任何cmdlets。 - DmitryAB

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接