在本快速入門中,您將瞭解 GitHub Copilot 如何透過在 Visual Studio Code 中直接生成具內容理解的程式碼,加速 SQL 和 ORM 的開發。 無論您是使用 T-SQL,還是使用 Entity Framework、Sequelize、Prisma 或 SQLAlchemy 等 ORM,GitHub Copilot 都協助您建立數據表、演進架構及減少重複的腳本,因此您可以專注於建置應用程式邏輯。
開始吧
請確定您已連線到資料庫,並使用 MSSQL 擴充功能開啟使用中的編輯器視窗。 此連線可讓 @mssql
聊天參與者瞭解您的資料庫環境內容,提供精確且切合內容的建議。 如果沒有資料庫連線,聊天參與者就不會有架構或數據內容來提供有意義的回應。
下列範例使用 AdventureWorksLT2022
範例資料庫,您可以從 Microsoft SQL Server 範例和社群專案 首頁下載。
為了獲得最佳結果,請調整數據表和架構名稱以符合您自己的環境。
請確保聊天中包含@mssql
前綴。 例如,輸入 @mssql
,後面接著您的問題或提示。 這可確保聊天參與者瞭解您要求與 SQL 相關的協助。
使用 GitHub Copilot 產生程式代碼
使用 GitHub Copilot 來產生 SQL 和 ORM 相容的程式代碼,以反映連線的資料庫結構,並遵循最佳做法。 從定義數據表和關聯性到腳本檢視、建置移轉檔案,或建置數據存取層和 API,GitHub Copilot 可協助您更快且更有信心地移動。
以下是您可以透過聊天參與者詢問的常見使用案例和範例:
產生 SQL 程式代碼
GitHub Copilot 可協助您針對各種開發案例產生 SQL 程式代碼,從編寫腳本、建立和修改數據表,到撰寫預存程式和檢視。 這些範例說明如何使用 GitHub Copilot 將重複的 SQL 腳本自動化,並遵循 T-SQL 開發的最佳做法。
- 將架構中的所有
SalesLT
數據表腳本化為CREATE TABLE
中的SQL
語句。 - 在我的目前資料庫中撰寫預存程式
SQL
。 此程序應該會從表格SalesLT.Customer
中提取所有符合指定參數的客戶,其中LastName
匹配給定參數。 請務必使用 T-SQL 最佳做法。 -
SalesLT.Customer
將數據表腳本編寫為CREATE TABLE
語句,包括所有條件約束和索引。 -
SQL
編寫腳本來建立連結SalesLT.Customer
和SalesLT.SalesOrderHeader
數據表的檢視表,其中顯示客戶名稱和訂單總金額。 - 撰寫
SQL
腳本,通過新增一個具有默認時間戳記的SalesLT.Customer
欄位來修改last_updated
數據表。
產生 ORM 移轉
GitHub Copilot 可以根據您選擇的架構內容和架構,產生 ORM 相容的移轉和模型定義。 從 Sequelize 到 Entity Framework、Prisma 和 SQLAlchemy,GitHub Copilot 可協助建立與應用程式數據模型一致的 Scaffold 變更。
產生 Sequelize (JavaScript) 模型,以將數據行
email
(varchar(256)
) 新增至SalesLT.Customer
數據表。在 C# 中產生 Entity Framework 模型類別,以表示具有
SalesLT.ProductModel
、id
和name
數據行的description
數據表。根據現有的
SalesLT.Product
數據表,在 C# 中產生 Entity Framework 模型。撰寫 SQLAlchemy 程式代碼來定義
SalesLT.OrderDetails
具有id
、order_date
和customer_id
字段的數據表,以確保與Python
相容。使用 SQLAlchemy,撰寫一個參數化查詢,從
SalesLT.Customer
數據表中選取所有客戶,其中LastName
符合所提供的參數。更新我現有的 Prisma 模型 (schema.prisma),以使用
SalesLT.Order
、id
和customer_id
欄位定義新的order_date
模型。產生數據表的
SalesLT.Product
SQLAlchemy 模型類別,包括數據行和數據類型。
產生重複使用的應用程式程序代碼
GitHub Copilot 也可以幫助搭建與您的 SQL 資料庫互動的後端和前端元件。 這些範例示範如何使用 Azure Functions、Node.js、Django 和 Next.js等熱門堆棧,從架構移至運作中的應用程式程序代碼。
無伺服器後端 SQL 系結和 Blazor
下列範例顯示您可以搭配 GitHub Copilot Chat 使用的完整提示,以建立端對端解決方案。 這些提示包括詳細的指示和內容,可協助 Copilot 跨後端和前端層產生精確的結構化程序代碼。
使用適用於 Functions 和 Blazor WebAssembly 的 Azure SQL 系結來產生完整堆疊應用程式。 請遵循下列步驟:
後端:具有 SQL 系結的 Azure Functions (C#)
- 設定
SQL Bindings
為從數據表自動讀取和寫入數據SalesLT.Customer
。 - 使用下列端點實作 HTTP 觸發的函式:
-
GET /api/customers
– 獲取所有客戶。 -
GET /api/customers/{id}
– 依標識碼取得特定客戶。 -
POST /api/customers
– 建立新的客戶。 -
PUT /api/customers/{id}
– 更新現有的客戶。 -
DELETE /api/customers/{id}
– 刪除客戶。
-
- 使用
Dependency Injection
來進行資料庫連線和紀錄。 -
appsettings.json
包含用來儲存資料庫連接字串和環境變數的檔案。 - 使用
Azure Functions Core Tools
在本機執行及測試函式。
- 設定
前端:Blazor WebAssembly (選用)
- 建立
Blazor WebAssembly
取用 API 的前端。 - 顯示具有客戶數據和表單的數據表,以新增客戶。
- 使用
HttpClient
來呼叫Azure Functions
端點。 - 實作雙向數據系結,以動態方式處理窗體輸入。
- 使用
Bootstrap
或Blazor
元件來設定樣式和版面配置。
- 建立
請確定專案包含在本機執行 Azure Functions
後端和 Blazor WebAssembly
前端的設定指示,以及適當的 .env
或 local.settings.json
資料庫連線的組態。
Full-Stack 與 Node.js 和 Next.js
以下是您可以在 GitHub Copilot Chat 中提供的詳細提示,以產生完整的後端設定,包括 API 路由和資料庫整合。
使用 Node.js 與連線到本機 SQL Database 的 Express 來產生 REST API。 使用 Tedious 套件進行 SQL Server 連線,並將 Prisma 作為 ORM 使用。 請遵循下列步驟:
後端:Node.js + Express
- 使用
Prisma
伺服器驅動程式,將Tedious
設定為SQL
,以建立資料庫連線。 - 為
SalesLT.Customer
實作 API 路由,使用以下端點:-
GET /customers
– 獲取所有客戶。 -
GET /customers/:id
– 依標識碼取得特定客戶。 -
POST /customers
– 建立新的客戶。 -
PUT /customers/:id
– 更新現有的客戶。 -
DELETE /customers/:id
– 刪除客戶。
-
- 設定
Prisma
以映射SalesLT.Customer
表並使用prisma migrate dev
產生資料庫遷移。 - 用
dotenv
來設置環境變數(資料庫認證、埠等)。 - 新增
Jest
以測試 API 端點。
- 使用
前端:Next.js + TypeScript (選擇性)
- 建立
Next.js
取用 API 的前端。 - 顯示具有客戶數據和表單的數據表,以新增客戶。
- 使用
React
勾點 (useState
、useEffect
) 以動態方式管理狀態和擷取數據。 - 使用
Tailwind CSS
來設定UI的樣式。 - 在
getServerSideProps
中實作伺服器端資料抓取(Next.js
),以提升效能。
- 建立
請確定專案包含獨立執行後端和前端的設定指示,以及資料庫連線的適當 .env
設定。
後端:Django + Django REST 架構
以下是您可以在 GitHub Copilot Chat 中提供的詳細提示,以產生完整的後端設定,包括 API 路由和資料庫整合。
使用Django
和Django REST Framework
來為SalesLT.Customer
數據表搭建後端。 請遵循下列步驟:
使用 Django 搭配下列端點實作
ModelViewSet
API 路由:-
GET /customers
– 獲取所有客戶。 -
GET /customers/{id}
– 依標識碼取得特定客戶。 -
POST /customers
– 建立新的客戶。 -
PUT /customers/{id}
– 更新現有的客戶。 -
DELETE /customers/{id}
– 刪除客戶。
-
新增有關使用
python manage.py makemigrations
和migrate
產生資料庫移轉的指示。
意見反應:產生程序代碼
若要協助我們精簡及改善 MSSQL 延伸模組的 GitHub Copilot,請使用下列 GitHub 問題範本來提交您的意見反應: GitHub Copilot 意見反應
提交意見反應時,請考慮包括:
測試的案例 – 讓我們知道您專注於哪些領域,例如架構建立、查詢產生、安全性、當地語系化。
表現良好之處 – 描述任何感覺順暢、有幫助或超乎您期望的體驗。
問題或錯誤 – 包含任何問題、不一致或混淆的行為。 螢幕快照或螢幕錄製特別有用。
改進建議 – 分享改善可用性、擴大涵蓋範圍或增強 GitHub Copilot 回應的想法。