[英]How to deal with database changes during development with EF Core?
在使用.NET Core和Entity Framework Core進行開發期間,我正在努力應對數據庫更改。
當我創建新模型並將其添加到dbContext時,即使使用dbContext.Database.EnsureCreated();
在Startup.cs中它不會創建新表。
它只會在我之前使用dotnet ef database drop
時創建所有表,但每次添加新模型時必須為db播種數據非常煩人。 每次創建越來越多的遷移對我來說都不是一個好主意...
有人可以提出更好的方法嗎
不幸的是,EF核心似乎不支持自動遷移,例如在EF 6中。這意味着每次更改都需要添加新的遷移。 您可以在Startup => Configure中添加此代碼以自動應用最新的遷移,但如果我理解他們的文檔,則必須為每個更改添加新的遷移。
using (var serviceScope app.ApplicationServices.GetService<IServiceScopeFactory>().CreateScope())
{
var context = serviceScope.ServiceProvider.GetRequiredService<YourDbContext>();
context.Database.Migrate();
}
參考: EntityFramework核心自動遷移 https://github.com/aspnet/EntityFrameworkCore/issues/6214
同意@Nathan關於使用流暢的api自己創建結構。
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.