共用方式為


快速入門:產生程式代碼 (預覽)

在本快速入門中,您將瞭解 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.CustomerSalesLT.SalesOrderHeader 數據表的檢視表,其中顯示客戶名稱和訂單總金額。
  • 撰寫SQL腳本,通過新增一個具有默認時間戳記的SalesLT.Customer欄位來修改last_updated數據表。

產生 ORM 移轉

GitHub Copilot 可以根據您選擇的架構內容和架構,產生 ORM 相容的移轉和模型定義。 從 Sequelize 到 Entity Framework、Prisma 和 SQLAlchemy,GitHub Copilot 可協助建立與應用程式數據模型一致的 Scaffold 變更。

  • 產生 Sequelize (JavaScript) 模型,以將數據行 emailvarchar(256)) 新增至 SalesLT.Customer 數據表。

  • 在 C# 中產生 Entity Framework 模型類別,以表示具有 SalesLT.ProductModelidname 數據行的description數據表。

  • 根據現有的 SalesLT.Product 數據表,在 C# 中產生 Entity Framework 模型。

  • 撰寫 SQLAlchemy 程式代碼來定義 SalesLT.OrderDetails 具有 idorder_datecustomer_id 字段的數據表,以確保與 Python相容。

  • 使用 SQLAlchemy,撰寫一個參數化查詢,從SalesLT.Customer數據表中選取所有客戶,其中LastName符合所提供的參數。

  • 更新我現有的 Prisma 模型 (schema.prisma),以使用 SalesLT.Orderidcustomer_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 系結來產生完整堆疊應用程式。 請遵循下列步驟:

  1. 後端:具有 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 在本機執行及測試函式。
  2. 前端:Blazor WebAssembly (選用)

    • 建立 Blazor WebAssembly 取用 API 的前端。
    • 顯示具有客戶數據和表單的數據表,以新增客戶。
    • 使用 HttpClient 來呼叫 Azure Functions 端點。
    • 實作雙向數據系結,以動態方式處理窗體輸入。
    • 使用 BootstrapBlazor 元件來設定樣式和版面配置。

請確定專案包含在本機執行 Azure Functions 後端和 Blazor WebAssembly 前端的設定指示,以及適當的 .envlocal.settings.json 資料庫連線的組態。

Full-Stack 與 Node.js 和 Next.js

以下是您可以在 GitHub Copilot Chat 中提供的詳細提示,以產生完整的後端設定,包括 API 路由和資料庫整合。

使用 Node.js 與連線到本機 SQL Database 的 Express 來產生 REST API。 使用 Tedious 套件進行 SQL Server 連線,並將 Prisma 作為 ORM 使用。 請遵循下列步驟:

  1. 後端: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 端點。
  2. 前端:Next.js + TypeScript (選擇性)

    • 建立 Next.js 取用 API 的前端。
    • 顯示具有客戶數據和表單的數據表,以新增客戶。
    • 使用 React 勾點 (useStateuseEffect) 以動態方式管理狀態和擷取數據。
    • 使用 Tailwind CSS來設定UI的樣式。
    • getServerSideProps中實作伺服器端資料抓取(Next.js),以提升效能。

請確定專案包含獨立執行後端和前端的設定指示,以及資料庫連線的適當 .env 設定。

後端:Django + Django REST 架構

以下是您可以在 GitHub Copilot Chat 中提供的詳細提示,以產生完整的後端設定,包括 API 路由和資料庫整合。

使用DjangoDjango REST Framework來為SalesLT.Customer數據表搭建後端。 請遵循下列步驟:

  • 使用 Django 搭配下列端點實作 ModelViewSet API 路由:

    • GET /customers – 獲取所有客戶。
    • GET /customers/{id} – 依標識碼取得特定客戶。
    • POST /customers – 建立新的客戶。
    • PUT /customers/{id} – 更新現有的客戶。
    • DELETE /customers/{id} – 刪除客戶。
  • 新增有關使用python manage.py makemigrationsmigrate產生資料庫移轉的指示。

意見反應:產生程序代碼

若要協助我們精簡及改善 MSSQL 延伸模組的 GitHub Copilot,請使用下列 GitHub 問題範本來提交您的意見反應: GitHub Copilot 意見反應

提交意見反應時,請考慮包括:

  • 測試的案例 – 讓我們知道您專注於哪些領域,例如架構建立、查詢產生、安全性、當地語系化。

  • 表現良好之處 – 描述任何感覺順暢、有幫助或超乎您期望的體驗。

  • 問題或錯誤 – 包含任何問題、不一致或混淆的行為。 螢幕快照或螢幕錄製特別有用。

  • 改進建議 – 分享改善可用性、擴大涵蓋範圍或增強 GitHub Copilot 回應的想法。