我有一个.NET Core 3.0解决方案,其中包含5个项目。其中一个项目使用EF6,另一个项目使用EF Core,因此EF6和EF Core并排使用。 Visual Studio尽可能新鲜(16.3.5)。尝试为使用EF6的项目创建迁移并在装有Windows 10的笔记本电脑上执行Add-Migration命令时,我看到一条警告消息:“已安装了Entity Framework 6和Entity FrameworkCore。EntityFramework 6工具是,但一切正常,迁移成功完成。
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绑定的项目执行迁移。我该如何解决? “添加-迁移”或“ EntityFramework \ Add-Migration”或“ EntityFrameworkCore \ Add-Migration”均无效。
更新2019年10月17日 在我看来,我的VS安装已损坏。好消息是EF6.3附带了ef.exe实用程序,该实用程序替代了migration.exe,并允许开发人员在VS IDE外部使用命令行来创建迁移。
答案 0 :(得分:0)
仅使用EF6或仅依赖EFCore的项目创建其他解决方案,并执行使用该解决方案时需要执行的特定于版本的操作。