使用Code First將新模型添加到現有模型

asp.net-core ef-code-first entity-framework-core visual-studio-2015

目前我實現以上如下。

問題 :這是否是正確的方法,以保持現有表中的數據。我覺得我這樣做是一種冗長的方式。這樣做的任何建議或替代/正確的方法?

  1. myProjectContext.cs文件中創建一個新實體(模型)和相應的DbSet<...>條目
  2. 從SQL Server Db中刪除VS2015中的現有遷移和相應的__EFMigrationsHistory
  3. 運行PM> add-migration mytMigration -context myProjectContext
  4. 註釋掉新生成的mytMigration.cs文件中的所有代碼,但與新生成的實體(模型)相關的代碼除外。
  5. 運行PM> update-database -context myProjectContext

在現有Db中創建新表(對應於新添加的實體)以及新的__EFMigrationsHistory表。所有現有表格中的數據仍然存在。

更新:

我正在關注這個官方的ASP.NET教程,並且 - 根據他們的建議 - 已經通過依賴注入註冊了我們的上下文,如下所示:

Startup.cs

public void ConfigureServices(IServiceCollection services)
        {
            var connection = @"Server=myDevMachine\SQL2012Instance;Database=myDb;Trusted_Connection=True;";
            services.AddDbContext<ABCTestContext>(options => options.UseSqlServer(connection));
...
...
}

熱門答案

你不應該刪除現有的東西。你正在加入嗎?

你應該做的步驟:

  1. 創建新實體
  2. 將DbSet添加到上下文中
  3. 運行add-migration newMigrationName
  4. 運行update-database

Add-Migration查看現有數據庫和模型,並生成遷移以更新架構。

運行Update-Database時,EF會檢查遷移歷史記錄表並運行尚未執行的遷移。



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow