Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
GitHub Copilot und die MSSQL-Erweiterung arbeiten mit jedem wichtigen objektrelationalen Mapping (ORM)-Framework für SQL Server und Azure SQL-Datenbank. Diese Referenz behandelt die unterstützten ORMs, was jedes leisten kann, sowie ein End-to-End-Beispiel, das Sie von einer SQL Server-Tabelle zu einem typisierten Modell, einer Migration und einer Datenzugriffsmethode führt.
Wichtige Erkenntnisse
- GitHub Copilot generiert Modelle, Migrationen und Datenzugriffscode, die auf Ihr gewähltes ORM zugeschnitten sind.
- Der Chat-Teilnehmer
@mssqlliest dein Datenbankschema und nutzt es als Kontext bei der Generierung von ORM-Code. - Benutzerdefinierte Anweisungen können Konventionen sowohl auf der Transact-SQL (T-SQL) als auch auf der ORM-Schicht durchsetzen.
ORM-Unterstützungsmatrix
| ORM | Stapel | Models | Migrations | Schema-zuerst | Primär auf Code ausgelegt |
|---|---|---|---|---|---|
| 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 (über Alembic) | Ja | Ja |
| Django ORM | Python | Ja | Ja | Ja | Limited |
| TypeORM | Node.js / TypeScript | Ja | Ja | Ja | Ja |
| Nieselregen | Node.js / TypeScript | Ja | Ja | Ja | Ja |
| Dapper | .NET / C# | Micro-ORM | Manual | Nein | Ja |
End-to-End-Szenario
Jeder Abschnitt verwendet dasselbe Szenario: Sie haben SalesLT.Customer SQL Server und möchten eine Spalte email hinzufügen, ein typisiertes Modell generieren und eine Datenzugriffsmethode erstellen.
Entity Framework Core (ein Framework zum Arbeiten mit Datenbanken)
1. Generiere das Modell
@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. Generiere die Migration
@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. Generiere die Datenzugriffsmethode
@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. Generiere das Schemamodell
@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. Generiere die Migration
@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. Generiere die Datenzugriffsmethode
@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. Generiere das Modell
@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. Generiere die Migration
@mssql Generate a Sequelize migration in JavaScript to add an
`email` column (STRING(256), nullable) to the `Customer` table in
the `SalesLT` schema.
3. Generiere die Datenzugriffsmethode
@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. Generiere das Modell
@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. Die Alembic-Migration erzeugen
@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. Generiere die Datenzugriffsmethode
@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. Generiere das Modell
@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. Generiere die Migration
@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. Generiere die Datenzugriffsmethode
@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. Erzeugen Sie die Entität
@mssql Generate a TypeORM entity class for SalesLT.Customer.
Use decorators for @Entity, @Column, @PrimaryGeneratedColumn.
Include DATETIME2 and NVARCHAR mappings for SQL Server.
2. Generiere die Migration
@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. Generiere die Datenzugriffsmethode
@mssql Write a TypeORM repository method that uses the query
builder to return all active customers ordered by last name.
Include strict TypeScript types.
Nieselregen
1. Generiere das 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. Generiere die Migration
@mssql Generate a Drizzle migration SQL file to add an `email`
column (nvarchar 256, nullable) to the SalesLT.Customer table.
3. Generiere die Datenzugriffsmethode
@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 ist ein Mikro-ORM ohne Unterstützung für Schemagenerierung oder Migration, aber GitHub Copilot kann Datenzugriffsmethoden generieren, die Dappers Erweiterungsmethoden gegen ein bestehendes Schema verwenden.
@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.
Häufige Muster und Vorbehalte
- Entity Framework Core + SQL Server Zusammenstellung. Für groß- und kleinschreibungssensitive Vergleiche, explizit in Abfragen gesetzt
EF.Functions.Collate. Gehen Sie nicht davon aus, dass die Standard-Zusammenstellung mit der Server-Einstellung von SQL Server übereinstimmt. - Prisma + MSSQL Verbindungszeichenfolge-Quote. Azure SQL-Datenbank-Verbindungszeichenketten erfordern eine sorgfältige URL-Codierung von Sonderzeichen in Passwörtern. Siehe die Dokumentation des Prisma SQL Server-Anbieters.
- SQLAlchemy + pyodbc treiber. Installiere und referenziere die korrekte Treiberversion (
ODBC Driver 18 for SQL ServerStand 2026). Stecke Versionen anrequirements.txt, um Überraschungen zu vermeiden. - Django ORM + Primärschlüssel-Mapping.
IDENTITYSpalten erfordern das Paket undIDENTITY_INSERTdiedjango-mssql-backendVerarbeitung der Datenlasten. - TypeORM + camelCase. Setze
entityPrefixund nutze Namensstrategien, die mit deinen eigenen Anweisungen übereinstimmen, wenn dein Team eine bestimmte Konvention verwendet.
Teilen von Erfahrungen
Um uns dabei zu helfen, GitHub Copilot für die MSSQL-Erweiterung zu verfeinern und zu verbessern, verwenden Sie die folgende GitHub-Problemvorlage, um Ihr Feedback zu übermitteln: GitHub Copilot Feedback
Berücksichtigen Sie bei der Übermittlung von Feedback Folgendes:
Getestete Szenarien: Teilen Sie uns mit, auf welche Bereiche Sie sich konzentrieren, z. B. Schemaerstellung, Abfragegenerierung, Sicherheit, Lokalisierung.
Was gut funktioniert hat: Beschreiben Sie eine Erfahrung, die glatt verlief, hilfreich war oder Ihre Erwartungen übertroffen hat.
Probleme oder Fehler: Schließen Sie Alle Probleme, Inkonsistenzen oder verwirrende Verhaltensweisen ein. Screenshots oder Bildschirmaufzeichnungen sind besonders hilfreich.
Verbesserungsvorschläge: Teilen Sie Ideen zur Verbesserung der Benutzerfreundlichkeit, zur Erweiterung der Abdeckung oder zur Verbesserung der Antworten von GitHub Copilot.
Verwandte Inhalte
-
Quickstart: Chatte mit dem
@mssqlTeilnehmer (Fragenmodus) - Schnellstart: Generieren von Code
- Schnellstart: Verwenden des Intelligenten Abfrage-Generators
- Schnellstart: Abfrageoptimierer-Assistent
- Quickstart: Verwenden Sie benutzerdefinierte Anweisungen, um GitHub Copilot mit Ihren T-SQL-Konventionen abzustimmen.
- Einschränkungen und bekannte Probleme