正在移植到.NET核心的我的應用程序將使用帶有SQLite的新EF核心。我想在應用第一次運行時自動創建數據庫和表結構。按照EF核心文檔,這是使用手動命令完成在實體框架核心中自動創建數據庫
dotnet ef migrations add MyFirstMigration
dotnet ef database update
但是我不希望最終用戶輸入這些命令,並希望有應用程序創建和設置第一次使用的數據庫。對於EF 6,功能類似於
Database.SetInitializer(new CreateDatabaseIfNotExists<MyContext>());
但是在EF內核中,這些似乎並不存在。我無法找到任何與EF內核相同的示例或文檔,並且在EF內核文檔的缺失功能列表中未提及。我已經設置了模型類,因此我可以根據模型編寫一些代碼來初始化數據庫,但如果框架自動執行此操作,會更容易。我不想自動構建模型或遷移,只需在新數據庫上創建表結構。
我在這裏丟失了什麼,或者在EF內核中缺少自動創建表格功能?
我依然很漂亮EF是新的,我使用當前數據庫文件創建了使用EF 6代碼首先「從數據庫創建」從Visual Studio中定義數據結構的類。然後,我將這些內容剪切/粘貼到新的dotnet內核VS解決方案中 - 所以我想這些都不是遷移。這是否意味着我必須在上面的代碼可以使用之前創建一個遷移文件? – deandob
我真的很抱歉,我沒有在我的答案錯誤,如果你不使用遷移,可以使用命令context.Database.EnsureCreated()/ EnsureDeleted(),在https://blogs.msdn.microsoft更多細節。 com/dotnet/2016/09/29/Implement-seeding-custom-conventions-and-interceptors-in-ef-core-1-0/ –
是的,很有幫助,謝謝。 – deandob