Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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
@mssqlchatu č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.Collatev 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 Serverk roku 2026). Připněte si verzerequirements.txt, abyste se vyhnuli překvapením. - Django ORM + mapování primárních klíčů.
IDENTITYsloupce vyžadujídjango-mssql-backendbalíček aIDENTITY_INSERTzpracování pro načítaní dat. - TypeORM + camelCase. Nastavte
entityPrefixa 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.
Související obsah
-
Rychlý začátek: Chat s účastníkem
@mssql(režim dotazu) - Rychlý start: Generování kódu
- Rychlý start: Použití tvůrce inteligentních dotazů
- Rychlý start: Pomocník pro optimalizaci dotazů
- Rychlý začátek: Použijte vlastní instrukce k zarovnání GitHub Copilot s vašimi T-SQL konvencemi
- Omezení a známé problémy