1. 程式人生 > >.net core 實踐筆記(二)--EF連接Azure Sql

.net core 實踐筆記(二)--EF連接Azure Sql

grand caf info mod soft 去掉 https lin als

** 溫馨提示:如需轉載本文,請註明內容出處。**

本文鏈接: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

映射模型

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裏登錄一下試試

.net core 實踐筆記(二)--EF連接Azure Sql