添加迁移 - Entity Framework Core 和 Entity Framework 6 均已安装

问题描述 投票:0回答:3

我有一个包含多个项目的解决方案,其中一个使用 EF 6,另一个使用实体框架核心。

在添加 EF6 项目之前迁移工作正常,但现在我无法使用迁移的命令:

add-migration 'anything'

Entity Framework Core 和 Entity Framework 6 均已安装。 Entity Framework Core 工具正在运行。对实体框架 6 使用“EntityFramework\Add-Migration”。

对于使用 EF6 的项目,我可以使用以下方式添加迁移:

EntityFramework\Add-Migration 'anthing_here'
,但我无法使用这种方式向带有 EFCore 的项目添加迁移。

有什么建议吗??

c# entity-framework visual-studio-2017 entity-framework-core entity-framework-migrations
3个回答
10
投票

我的项目也发生过同样的情况,该项目已有约 20 年的历史。

它拥有从Web Forms到最新的.Net Core技术的一切。 取决于运气,我有时会发现

PackageManagerConsole
有时使用
EFCore
EF6

我不高兴我必须使用像上面答案所述的前缀,所以我更深入地挖掘。

如果您在

Get-Module
中运行命令
PM> PackageManagerConsole
,您应该获得活动模块列表:

ModuleType Version    Name                                ExportedCommands                                                                                                                                                                                                
---------- -------    ----                                ----------------                                                                                                                                                                                                
Script     6.4.4      EntityFramework6                    {Add-EFDefaultConnectionFactory, Add-EFProvider, Add-Migration, Enable-Migrations...}                                                                                                                           
Script     5.0.10     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             

这里的问题正如您所看到的,甚至可能知道解决方案正在使用两个

EntityFramework Core and 6

您可以使用命令删除冲突的模块之一:

PM> Remove-Module <module-name-from-list>

我需要的是仅使用 EFCore,因此我删除了 EF6 模块,如下所示:

PM> Remove-Module EntityFramework6

然后您可以使用不带前缀的命令,例如:

PM> Add-Migration TestMigration

我与 EF 团队的相关讨论: https://github.com/dotnet/efcore/issues/27051


7
投票

对于 EF6:

EntityFramework\Add-Migration <MIGRATIONNAME>

对于 EF Core:

EntityFrameworkCore\Add-Migration <MIGRATIONNAME>

0
投票

2023 年。

对于 EF6 使用:

EntityFramework6\Add-Migration USA-1282-DACLUpdate
© www.soinside.com 2019 - 2024. All rights reserved.