如果您已閱讀所有注意事項並準備好遷移,以下是幫助您開始的一些指導方針。
安裝EF Core NuGet 套件
若要使用EF Core,請安裝您想要使用之資料庫提供者的NuGet 套件。 例如,以 SQL Server 為目標時,您會安裝 Microsoft.EntityFrameworkCore.SqlServer。 如需詳細資訊,請參閱 資料庫提供者 。
如果您打算使用移轉,則也應該安裝 Microsoft.EntityFrameworkCore.Tools 套件。
您可以讓EF6 NuGet 套件 (EntityFramework) 保持安裝,因為 EF Core 和 EF6 可以在相同的應用程式中並存使用。 不過,如果您不想在應用程式的任何區域中使用 EF6,則卸載套件將有助於在需要注意的程式代碼片段上提供編譯錯誤。
交換命名空間
您在 EF6 中使用的大部分 API 都位於 System.Data.Entity 命名空間中(和相關子命名空間)。 第一個程式代碼變更是交換至 Microsoft.EntityFrameworkCore 命名空間。 通常,您會從衍生的上下文程式碼檔案開始,然後在此基礎上持續進行,逐一解決出現的編譯錯誤。
內容組態(連線等)
如設定資料庫連線中所述,EF Core 在偵測要連線的資料庫方面具有較少的魔力。 您需要在衍生內容上覆寫 OnConfiguring 方法,並使用特定於資料庫提供者的 API 來設定資料庫連線。
大部分的 EF6 應用程式會將 連接字串 儲存在應用程式App/Web.config檔案中。 在 EF Core 中,您會使用 ConfigurationManager API 讀取此 連接字串。 您可能需要新增對 System.Configuration 框架組件的參考,才能使用此 API:
public class BloggingContext : DbContext
{
public DbSet<Blog> Blogs { get; set; }
public DbSet<Post> Posts { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(ConfigurationManager.ConnectionStrings["BloggingDatabase"].ConnectionString);
}
}
警告 永遠不要將密碼或其他敏感數據儲存在原始程式碼或組態檔中。 生產秘密不應該用於開發或測試。 不應將機密隨應用程式部署。 生產秘密應該透過受控方式存取,例如 Azure 金鑰保存庫。 您可以使用 Azure 金鑰保存庫 組態提供者來儲存及保護 Azure 測試和生產秘密。
更新您的程式碼
此時,處理編譯錯誤並檢閱程序代碼,以查看行為變更是否會影響您。
現有的遷移
現有的 EF6 移轉無法直接移植到 EF Core。
可能的話,最好假設所有先前的 EF6 移轉都已套用至資料庫,然後使用 EF Core 從該點開始移轉架構。 若要這樣做,在模型移植到 EF Core 之後,您會使用 Add-Migration 命令來新增移轉。 接著,您會從腳手架移轉的Up和Down方法中移除所有程式代碼。 後續的移轉將會與建立初始移轉時的模型進行比較。
測試埠
只是因為您的應用程式會編譯,並不表示它已成功移植到 EF Core。 您必須測試應用程式的所有區域,以確保沒有任何行為變更對您的應用程式造成負面影響。
最後,檢閱 移植時 要考慮的詳細案例,以取得程序代碼中特定案例和案例的更多建議。