本文介紹.net core2.1版本下 Mysql數據庫采用DB first方式使用Ef
1. 新建基於.net core2.1的項目(略)
2. 從nuget中引用Microsoft.AspNetCore.App (本次使用2.1.1版本,)
3. 從nuget中引用Pomelo.EntityFrameworkCore.MySql (本次使用2.1.2), Microsoft.EntityFrameworkCore(本次使用2.1.3),Microsoft.EntityFrameworkCore.Relational(本次使用2.1.3) 保存整個項目
4. 打開項目文件夾, 找到.csproj 文件, 文本文檔打開,在itemGroup中添加 <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.3" />
本次使用的版本是2.0.3,大家可以根據自己的需求添加版本
5. 在 .csproj 文件所在的目錄 按住 shift 鍵加鼠標右鍵, 打開 powershell 窗口
6. 執行代碼 dotnet ef dbcontext scaffold "Server=***;User Id=***;Password=***;Database=***" "Pomelo.EntityFrameworkCore.MySql"-o Models
其中 Models 表示你需要存放實體的文件夾名
參數說明
-o 輸出目錄(-OutputDir)
-f 覆蓋現有文件(-Force),數據庫更新時會用到
-t 指定表名(-Tables)
執行完成之后就自動生成了實體
7. 注意事項
(1). 項目生成不能報錯,報錯后無法更新實體,報 build fail 錯誤
(2). 生成的時候不能有警告,有警告的字段會自動跳過該字段,導致實體比數據庫少字段,或者導致該字段類型錯誤
(3). 如果tfs設置的是獨占,那一定要先將實體全部簽出,再更新,否則無法覆蓋實體,導致更新不了