Asp.net-Mvc
EF Core 3.1 是否支持 DB First 方法?
我們正在將
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
- EntityFrameworkCore
- EntityFrameworkCore.Design
- EntityFrameworkCore.Tools
- 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