繁体   English   中英

EF7迁移生成器忽略上下文参数

[英]EF7 migration generator is ignoring context parameter

我最近将我的EF7项目从DotNet Core 1.0.0迁移到1.1.0版,现在我在创建数据库迁移方面遇到了麻烦。

在我的项目中,我有多个上下文,工具dotnet-ef提供了一个命令行参数来区分这些上下文,以便为每个上下文创建单独的迁移。

当我尝试使用该命令为上下文“AuditLogContext”创建迁移时

dotnet ef migrations add Initial --context 'Some.Namespace.AuditLogContext' --output-dir './Migrations/AuditLogMigrations'

告诉我,它失败了

现有迁移使用名称“Initial”。

当我尝试使用其他名称创建迁移时,比如说Initial2 ,创建了迁移但是对于错误的上下文。

在文件夹中

./Migrations/AuditLogMigrations

是名为的新文件

20170212122451_Initial2.cs

20170212122451_Initial2.Designer.cs

CoreContextModelSnapshot.cs

我希望文件AuditLogContextModelSnapshot.cs

有没有人以前解决过这个问题?

我找到了这个问题的原因。

我的项目中有多个上下文,每个上下文都需要参数。 因此,迁移构建器期望每个上下文都有一个工厂。

在我的情况下,一个类实现所有工厂,现在有一个错误,接口的具体顺序用于确定创建哪些迁移。

public class Program : IDbContextFactory<CoreContext>, IDbContextFactory<AuditLogContext>, IDbContextFactory<LockContext>

此代码段将为CoreContext创建迁移

public class Program :  IDbContextFactory<AuditLogContext>, IDbContextFactory<CoreContext>,IDbContextFactory<LockContext>

并且代码段将为AuditLogContext创建迁移。

这有点烦人,但如果你知道如何创建迁移,那就没关系。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM