** 溫馨提示:如需轉載本文,請註明內容出處。** 本文鏈接:https://www.cnblogs.com/grom/p/9902098.html 筆者使用了常見的三層架構,Api展示層註入了Swagger,作為開發測試使用的文檔界面,具體搭建教程網上資料很全,不在贅述。 資料庫目前使用了SqlS ...
** 溫馨提示:如需轉載本文,請註明內容出處。**
本文鏈接:https://www.cnblogs.com/grom/p/9902098.html
筆者使用了常見的三層架構,Api展示層註入了Swagger,作為開發測試使用的文檔界面,具體搭建教程網上資料很全,不在贅述。
資料庫目前使用了SqlServer,建了幾張表和測試數據後放到了Azure雲伺服器上,值得一提的是,不同於其他雲伺服器,Azure對於資料庫進行了優化和精簡(畢竟自己微軟自己家的東西,權利就是大),優缺點清參照官網文檔。
筆者體驗下來的感覺就是使用門檻要比其他的家的雲伺服器大的多,用戶的賬號和Token等信息需要在Azure上配置,資料庫上的許可權比精簡前可以說是小的多,但也安全。
ORM使用的是Entity Framework和Dapper,執行命令都是使用Dapper,畢竟比EF輕的多,EF是用來映射資料庫實體類的,在.Net Core下,少了T4模板,我們就需要使用命令手動映射了。
安裝EF的包
Install-Package Microsoft.EntityframeworkCore.SqlServer Install-Package Microsoft.EntityframeworkCore.Tools Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design Install-Package Microsoft.EntityFrameworkCore
映射模型
Scaffold-DbContext -Force “Data Source=(local); Initial Catalog=Nagrand; Pooling=True; UID=sa;PWD=123;connect Timeout=10” Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
據說能去的空格都要去掉,不然可能會拉取失敗。
改裝成拉Azure上的語句
Scaffold-DbContext -Force “Data Source=tcp:test-server.database.windows.net,1433; Initial Catalog=DBName; Pooling=True;Persist Security Info=False; UID=sa;PWD=123;TrustServerCertificate=False;connect Timeout=30” Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
填坑:
- 如出現錯誤,請檢查拉去的項目(類庫)里是否都前面提到的幾個包。
- 註意符號,樓主把這個命令放到了OneNote里了,結果第二天就不能用了,試了好多遍發現引號莫名其妙變成中文的了,並且沒有語法的錯誤提示!!
- 用到的賬號和密碼一定拿到SSMS里登錄一下試試
- 博主使用命令安裝包的時候發現項目下有分析器是異常狀態,查看是引用了C盤的文件,這個要註意,遷移的時候如果沒有這些文件可能會出異常,可以從Nugit包里找到這些包一個個手動安裝,就不會有異常了。