在Mac 上 使用 Entity Framework Core 來存取SQL Server

  • 454
  • 0
  • SQL
  • 2021-01-20

本篇將介紹如何在macOS上安裝MS SQL Server,並使用EF Core存取

.NET 的開發人員通常都習慣使用MS SQL,但是在macOS上開發 .NET Core 無法直接安裝SQL Server,又必須使用的時候,這時候就需要使用Docker來

SQL Sever 2017 開始支援在Linux上安裝並使用,

在macOS上,我們可以透過Docker 安裝Linux的環境,並安裝SQL Server進入我們的容器當中。

首先,要先到Docker官網上下載

接著我們就要透過指令來pull image

sudo docker pull mcr.microsoft.com/mssql/server:2019-CU5-ubuntu-18.04

接著可以透過docker image list來查看我們所有的 image 清單

接著就要透過 docker run 來運行剛才下載的image

下面是運行的範例說明

sudo docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=<YourStrong@Passw0rd>" -p 1433:1433 --name sql1 -d mcr.microsoft.com/mssql/server:2019-CU5-ubuntu-18.04

密碼須符合以下規則,容器將無法設定 SQL Server:

  • 長度至少為 8 個字元,最多可達 128 個字元。
  • 以下四種類型至少要含三種:大寫英文字母、小寫英文字母、0~9的數字、非英數字元
  • 不包含使用者的帳戶名稱,此範例就是不能包含 sa 這個字

下方為實際執行範例

sudo docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Te$tPassw0rd" -p 1433:1433 --name sql1 -d mcr.microsoft.com/mssql/server:2019-CU5-ubuntu-18.04

接著輸入 docker ps -a  來查看所有容器的狀態

STATUS 是 UP 就表示容器有成功運行了

接著就開始對SQL Server進行連線吧

這邊我用的是Nacvicat作為連線的工具

首先點擊左上方的Connection並選取SQL Server

port 要填入1433,也就是我們剛才設定的port,密碼則是填入剛才設定的密碼

接著便能在管理工具中看到我們設定的連線了

 

接著在 EF Core的連線字串填入下方範例,即可成功連接MSSQL。(Database的部分請填入自己建立的資料庫)

Server=localhost,1433\\Catalog=tutorial_database;Database=Northwind;User=SA;Password=Te$tw0rd;

 

參考資料

Will保哥