簡體   English   中英

如何使用EF Core在開發期間處理數據庫更改?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM