簡體   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