Integrace objektově relačního mapování s GitHub Copilot

GitHub Copilot a rozšíření MSSQL spolupracují se všemi hlavními objektově relačními mapovými (ORM) frameworky pro SQL Server a Azure SQL Database. Tato reference pokrývá podporované ORM, co každý z nich umí, a komplexní příklad, který vás převede od tabulky SQL Server k typizovanému modelu, migraci a metodě přístupu k datům.

Klíčové poznatky

  • GitHub Copilot generuje modely, migrace a kódy pro přístup k datům přizpůsobené vašemu zvolenému ORM.
  • Účastník@mssql chatu čte vaše databázové schéma a používá ho jako kontext při generování ORM kódu.
  • Vlastní instrukce mohou vynucovat konvence jak na vrstvách Transact-SQL (T-SQL), tak ORM.

Matice podpory ORM

ORM Zásobník Models Migrations Schéma na prvním místě Priorita kódu
Entity Framework Core .NET / C# Ano Ano Ano Ano
Prisma Node.js / TypeScript Ano Ano Ano Ano
Pokračování Node.js Ano Ano Ano Ano
SQLAlchemy Python Ano Ano (přes Alembic) Ano Ano
Django ORM Python Ano Ano Ano Omezené
TypeORM Node.js / TypeScript Ano Ano Ano Ano
Mrholení Node.js / TypeScript Ano Ano Ano Ano
Dapper .NET / C# Micro-ORM Manual No Ano

Scénář od začátku do konce

Každá sekce používá stejný scénář: máte SalesLT.Customer v SQL Server a chcete přidat email sloupec, vygenerovat typovaný model a vytvořit metodu přístupu k datům.

Entity Framework Core

1. Vygenerujte model

@mssql Generate an Entity Framework Core entity class for
SalesLT.Customer. Use C# records where appropriate. Target
Entity Framework Core 9 with SQL Server provider.

2. Generujte migraci

@mssql Generate an Entity Framework Core migration to add an
`Email` column (nvarchar(256), nullable) to the Customer entity.
Use the EF Core Add-Migration conventions and include both the
Up and Down methods.

3. Generujte metodu přístupu k datům

@mssql Write a CustomerRepository method that returns all active
customers ordered by LastName. Use the DbContext pattern, async/await,
and return IReadOnlyList<Customer>.

Prisma

1. Vygenerujte model schématu

@mssql Generate a Prisma model for SalesLT.Customer using the
sqlserver provider. Use @map annotations to match the existing
column names. Set the primary key and unique constraints explicitly.

2. Generujte migraci

@mssql Generate a Prisma migration SQL file to add an `email`
column (NVARCHAR(256), nullable) to the SalesLT.Customer table,
compatible with the sqlserver provider.

3. Generujte metodu přístupu k datům

@mssql Write a TypeScript function that uses the Prisma client to
return all active customers ordered by last name, including strict
TypeScript types.

Pokračování

1. Vygenerujte model

@mssql Generate a Sequelize model class for SalesLT.Customer using
the sequelize-typescript decorators pattern. Include data type
mappings for DATETIME2 and NVARCHAR columns.

2. Generujte migraci

@mssql Generate a Sequelize migration in JavaScript to add an
`email` column (STRING(256), nullable) to the `Customer` table in
the `SalesLT` schema.

3. Generujte metodu přístupu k datům

@mssql Write a Sequelize repository method using async/await that
returns all active customers ordered by LastName. Use model scopes
for the `active` filter.

SQLAlchemy

1. Vygenerujte model

@mssql Generate a SQLAlchemy 2.0 model for SalesLT.Customer using
the declarative Mapped[] syntax. Use the pyodbc driver connection
string format for SQL Server.

2. Generovat migraci Alembiků

@mssql Generate an Alembic migration script to add an `email`
column (NVARCHAR(256), nullable) to the SalesLT.Customer table.
Include both upgrade and downgrade functions.

3. Generujte metodu přístupu k datům

@mssql Write a SQLAlchemy 2.0 async repository method using
select() and scalars() that returns all active customers ordered
by last name.

Django ORM

1. Vygenerujte model

@mssql Generate a Django model for SalesLT.Customer using
django-mssql-backend. Include Meta.db_table to map to the
existing table name with the SalesLT schema.

2. Generujte migraci

@mssql Generate a Django migration to add an `email` field
(CharField, max_length=256, null=True) to the Customer model.
Use the AddField operation.

3. Generujte metodu přístupu k datům

@mssql Write a Django queryset manager method that returns all
active customers ordered by last_name, using select_related for
any foreign key fields.

TypeORM

1. Vygenerujte entitu

@mssql Generate a TypeORM entity class for SalesLT.Customer.
Use decorators for @Entity, @Column, @PrimaryGeneratedColumn.
Include DATETIME2 and NVARCHAR mappings for SQL Server.

2. Generujte migraci

@mssql Generate a TypeORM migration class to add an `email`
column (nvarchar 256, nullable) to the SalesLT.Customer table.
Include both up and down methods.

3. Generujte metodu přístupu k datům

@mssql Write a TypeORM repository method that uses the query
builder to return all active customers ordered by last name.
Include strict TypeScript types.

Mrholení

1. Vygenerujte schéma

@mssql Generate a Drizzle schema definition for SalesLT.Customer
using the mssql dialect. Include type-safe column mappings for
nvarchar, datetime2, and bit types.

2. Generujte migraci

@mssql Generate a Drizzle migration SQL file to add an `email`
column (nvarchar 256, nullable) to the SalesLT.Customer table.

3. Generujte metodu přístupu k datům

@mssql Write a Drizzle query using the query builder that returns
all active customers ordered by last name. Use type-safe column
references.

Dapper

Dapper je mikro-ORM bez podpory generování schématu nebo migrace, ale GitHub Copilot dokáže generovat metody přístupu k datům, které využívají Dapperovy metody rozšíření proti existujícímu schématu.

@mssql Write a Dapper-based repository method in C# that returns
all active customers ordered by LastName. Use parameterized
queries and a typed Customer record.

Běžné vzorce a výhrady

  • Entity Framework Core + SQL Server kolace. Pro porovnání citlivá na velká písmena explicitně nastavte EF.Functions.Collate v dotazech. Nepředpokládejte, že výchozí třídění odpovídá nastavení na úrovni serveru v SQL Server.
  • Prisma + MSSQL připojovací řetězec quoteing. Spojovací řetězce Azure SQL Database vyžadují pečlivé kódování speciálních znaků v heslech pomocí URL kódování. Viz dokumentaci poskytovatele Prisma SQL Server.
  • SQLAlchemy + pyodbc ovladač. Nainstalujte a odkazujte na správnou verzi ovladače (ODBC Driver 18 for SQL Server k roku 2026). Připněte si verze requirements.txt , abyste se vyhnuli překvapením.
  • Django ORM + mapování primárních klíčů. IDENTITY sloupce vyžadují django-mssql-backend balíček a IDENTITY_INSERT zpracování pro načítaní dat.
  • TypeORM + camelCase. Nastavte entityPrefix a používejte strategie pojmenování tak, aby odpovídaly vašim vlastním instrukcím , pokud váš tým používá konkrétní konvenci.

Podělte se o své zkušenosti

Pokud nám chcete pomoct upřesnit a vylepšit GitHub Copilot pro rozšíření MSSQL, odešlete zpětnou vazbu pomocí následující šablony problému Na GitHubu: Váš názor na GitHub Copilot

Při odesílání zpětné vazby zvažte následující:

  • Testované scénáře: Dejte nám vědět, na které oblasti jste se zaměřili, například na vytváření schématu, generování dotazů, zabezpečení, lokalizaci.

  • Co dobře fungovalo: Popište všechny zkušenosti, které probíhaly hladce, byly užitečné nebo překročily vaše očekávání.

  • Problémy nebo chyby: Zahrňte všechny problémy, nekonzistence nebo matoucí chování. Snímky obrazovky nebo nahrávky obrazovky jsou užitečné hlavně.

  • Návrhy pro zlepšení: Sdílejte nápady na zlepšení použitelnosti, rozšíření pokrytí nebo vylepšení odpovědí GitHub Copilotu.