Asp.net-Mvc

EF Core 3.1 是否支持 DB First 方法?

  • December 25, 2021

我們正在將ASP.NET MVC 4.x應用程序移植到ASP.NET Core 3.1. 目前的應用程序正在使用EF 6.xDB first 方法。作為此遷移的一部分,我們將使用EF Core 3.1目前EF 6.x. 所以問題是:

EF Core 3.1 是否支持 DB First 方法?

如果沒有,有哪些選擇?我們只剩下程式碼優先的方法了嗎?

感謝您的幫助。

是的。從 .NET Core 1.0 到現在,它都支持 DB First Approach。你需要從nugets下載4

  1. EntityFrameworkCore
  2. EntityFrameworkCore.Design
  3. EntityFrameworkCore.Tools
  4. EntityFrameworkCore.SqlServer

打開工具 > NuGet 包管理器 > 包管理器控制台。並在控制台中輸入以下內容。

預設:

Scaffold-DbContext "Server=yourserveraddress;Database=yourdatabase;user id=youruser;password=yourpassword;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Context "YourOwnContext"

看到您關於“Scaffold-DbContext 僅創建 Code First 模型”的評論。不,Scaffold-DbContext 是 Database-First 方法。

“為現有數據庫創建實體和上下文類稱為數據庫優先方法。”

已編輯

如果您在數據庫中有新的更新並想要更新 dbcontext,只需在末尾添加 -f。它將更新並覆蓋您所有的 dbcontext 和模型類。

Scaffold-DbContext "Server=yourserveraddress;Database=yourdatabase;user id=youruser;password=yourpassword;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Context "YourOwnContext" -f

如果要添加一些數據註釋,例如

$$ Column $$等在模型類中,可以添加-DataAnnotations

Scaffold-DbContext "Server=yourserveraddress;Database=yourdatabase;user id=youruser;password=yourpassword;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Context "YourOwnContext" -DataAnnotations -f

引用自:https://stackoverflow.com/questions/59810607