我有一个包含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 命令显示以下表格:
在另一台装有Windows 7的工作站上,运行相同的命令时,我看到的表格几乎相同,但是EF6导出的cmdlet列表为空。
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之外使用命令行创建迁移。