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

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

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

本文連結: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裡登入一下試試