Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
GitHub Copilot en de MSSQL-extensie werken met elk belangrijk object-relationeel mapping (ORM) framework voor SQL Server en Azure SQL Database. Deze referentie behandelt de ondersteunde ORM's, wat elk kan doen, en een end-to-end voorbeeld dat je van een SQL Server-tabel naar een getypeerd model, migratie en data-toegangsmethode brengt.
Belangrijke punten
- GitHub Copilot genereert modellen, migraties en datatoegangscode die zijn afgestemd op jouw gekozen ORM.
- De
@mssqlchatdeelnemer leest je databaseschema en gebruikt het als context bij het genereren van ORM-code. - Aangepaste instructies kunnen conventies afdwingen over zowel Transact-SQL (T-SQL) als ORM-lagen.
ORM-ondersteuningsmatrix
| ORM | Stack | Models | Migrations | Schema-eerst | Eerst coderen |
|---|---|---|---|---|---|
| Entity Framework Core | .NET/C# | Ja | Ja | Ja | Ja |
| Prisma | Node.js / TypeScript | Ja | Ja | Ja | Ja |
| Sequelize | Node.js | Ja | Ja | Ja | Ja |
| SQLAlchemy | Python | Ja | Ja (via Alembic) | Ja | Ja |
| Django ORM | Python | Ja | Ja | Ja | Limited |
| TypeORM | Node.js / TypeScript | Ja | Ja | Ja | Ja |
| Motregen | Node.js / TypeScript | Ja | Ja | Ja | Ja |
| Dapper | .NET/C# | Micro-ORM | Manual | No | Ja |
End-to-end scenario
Elke sectie gebruikt hetzelfde scenario: je hebt SalesLT.Customer een SQL Server en wilt een email kolom toevoegen, een getypeerd model genereren en een data-toegangsmethode ontwikkelen.
Entity Framework Core
1. Genereer het 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. Genereer de migratie
@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. Genereer de data-toegangsmethode
@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. Genereer het schemamodel
@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. Genereer de migratie
@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. Genereer de data-toegangsmethode
@mssql Write a TypeScript function that uses the Prisma client to
return all active customers ordered by last name, including strict
TypeScript types.
Sequelize
1. Genereer het 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. Genereer de migratie
@mssql Generate a Sequelize migration in JavaScript to add an
`email` column (STRING(256), nullable) to the `Customer` table in
the `SalesLT` schema.
3. Genereer de data-toegangsmethode
@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. Genereer het 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. Genereer de Alembic-migratie
@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. Genereer de data-toegangsmethode
@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. Genereer het 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. Genereer de migratie
@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. Genereer de data-toegangsmethode
@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. Genereer de entiteit
@mssql Generate a TypeORM entity class for SalesLT.Customer.
Use decorators for @Entity, @Column, @PrimaryGeneratedColumn.
Include DATETIME2 and NVARCHAR mappings for SQL Server.
2. Genereer de migratie
@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. Genereer de data-toegangsmethode
@mssql Write a TypeORM repository method that uses the query
builder to return all active customers ordered by last name.
Include strict TypeScript types.
Motregen
1. Genereer het schema
@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. Genereer de migratie
@mssql Generate a Drizzle migration SQL file to add an `email`
column (nvarchar 256, nullable) to the SalesLT.Customer table.
3. Genereer de data-toegangsmethode
@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 is een micro-ORM zonder ondersteuning voor schemageneratie of migratie, maar GitHub Copilot kan data-toegangsmethoden genereren die Dapper's extensiemethoden gebruiken tegen een bestaand schema.
@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.
Veelvoorkomende patronen en kanttekeningen
- Entity Framework Core + SQL Server-verzameling. Voor hoofdlettergevoelige vergelijkingen, expliciet ingesteld
EF.Functions.Collatein zoekopdrachten. Ga er niet van uit dat de standaardcollatie overeenkomt met de serverniveau-instelling van SQL Server. - Prisma + MSSQL verbindingsreeks quotering. Azure SQL Database-verbindingsstrings vereisen zorgvuldige URL-codering van speciale tekens in wachtwoorden. Bekijk de documentatie van de Prisma SQL Server-provider.
- SQLAlchemy + pyodbc driver. Installeer en raadpleeg de juiste driverversie (
ODBC Driver 18 for SQL Servervanaf 2026). Zet versies inrequirements.txtom verrassingen te voorkomen. - Django ORM + primaire sleutel mapping.
IDENTITYkolommen vereisen hetdjango-mssql-backendpakket enIDENTITY_INSERTde verwerking van dataloads. - TypeORM + camelCase. Stel
entityPrefixen gebruik naamgevingsstrategieën zodat ze aansluiten bij je aangepaste instructies als je team een specifieke conventie gebruikt.
Uw ervaring delen
Om ons te helpen GitHub Copilot voor de MSSQL-extensie te verfijnen en te verbeteren, gebruikt u de volgende GitHub-probleemsjabloon om uw feedback te verzenden: GitHub Copilot-feedback
Overweeg het volgende bij het indienen van feedback:
Geteste scenario's: Laat ons weten op welke gebieden u zich richt, bijvoorbeeld het maken van schema's, het genereren van query's, beveiliging, lokalisatie.
Wat goed werkte: Beschrijf alle ervaringen die soepel verliepen, behulpzaam waren of uw verwachtingen overtroffen.
Problemen of bugs: neem eventuele problemen, inconsistenties of verwarrend gedrag op. Schermafbeeldingen of schermopnamen zijn vooral nuttig.
Suggesties voor verbetering: Deel ideeën voor het verbeteren van bruikbaarheid, het uitbreiden van de dekking of het verbeteren van de reacties van GitHub Copilot.