Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
GitHub Copilot e l'estensione MSSQL funzionano con ogni principale framework di mappatura ogget-relazionale (ORM) per SQL Server e database SQL di Azure. Questo riferimento copre gli ORM supportati, cosa ciascuno può fare e un esempio end-to-end che ti porta da una tabella SQL Server a un modello tipizzato, a una migrazione e a un metodo di accesso ai dati.
Messaggi chiave:
- GitHub Copilot genera modelli, migrazioni e codice di accesso ai dati personalizzati per l'ORM scelto.
- Il
@mssqlpartecipante alla chat legge lo schema del tuo database e lo usa come contesto per generare codice ORM. - Le istruzioni personalizzate possono imporre convenzioni sia tra i livelli Transact-SQL (T-SQL) che ORM.
Matrice di supporto ORM
| ORM | Stack | Models | Migrations | Schema-prima | Tecnologia incentrata sul codice |
|---|---|---|---|---|---|
| Entity Framework Core | .NET/C# | Sì | Sì | Sì | Sì |
| Prisma | Node.js/TypeScript | Sì | Sì | Sì | Sì |
| Sequel | Node.js | Sì | Sì | Sì | Sì |
| SQLAlchemy | Python | Sì | Sì (tramite Alembic) | Sì | Sì |
| Django ORM | Python | Sì | Sì | Sì | Limited |
| TypeORM | Node.js/TypeScript | Sì | Sì | Sì | Sì |
| Pioggerellina | Node.js/TypeScript | Sì | Sì | Sì | Sì |
| Dapper | .NET/C# | Micro-ORM | Manual | NO | Sì |
Scenario end-to-end
Ogni sezione utilizza lo stesso scenario: hai SalesLT.Customer SQL Server e vuoi aggiungere una email colonna, generare un modello tipizzato e produrre un metodo di accesso ai dati.
Entity Framework Core (un framework ORM per la gestione dei database nello sviluppo software)
1. Generare il modello
@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. Generare la migrazione
@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. Generare il metodo di accesso ai dati
@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. Generare il modello di schema
@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. Generare la migrazione
@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. Generare il metodo di accesso ai dati
@mssql Write a TypeScript function that uses the Prisma client to
return all active customers ordered by last name, including strict
TypeScript types.
Sequel
1. Generare il modello
@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. Generare la migrazione
@mssql Generate a Sequelize migration in JavaScript to add an
`email` column (STRING(256), nullable) to the `Customer` table in
the `SalesLT` schema.
3. Generare il metodo di accesso ai dati
@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. Generare il modello
@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. Generare la migrazione Alembic
@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. Generare il metodo di accesso ai dati
@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. Generare il modello
@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. Generare la migrazione
@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. Generare il metodo di accesso ai dati
@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. Generare l'entità
@mssql Generate a TypeORM entity class for SalesLT.Customer.
Use decorators for @Entity, @Column, @PrimaryGeneratedColumn.
Include DATETIME2 and NVARCHAR mappings for SQL Server.
2. Generare la migrazione
@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. Generare il metodo di accesso ai dati
@mssql Write a TypeORM repository method that uses the query
builder to return all active customers ordered by last name.
Include strict TypeScript types.
Pioggerellina
1. Generare lo 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. Generare la migrazione
@mssql Generate a Drizzle migration SQL file to add an `email`
column (nvarchar 256, nullable) to the SalesLT.Customer table.
3. Generare il metodo di accesso ai dati
@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 è un micro-ORM senza supporto per la generazione o migrazione di schemi, ma GitHub Copilot può generare metodi di accesso ai dati che utilizzano i metodi di estensione di Dapper su uno schema esistente.
@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.
Modelli comuni e avvertenze
- Entity Framework Core + collazione SQL Server. Per i confronti con la sensibilità a case e minuscoli, imposta
EF.Functions.Collateesplicitamente nelle query. Non dare per scontato che la collation predefinita corrisponda all'impostazione a livello di server di SQL Server. - Primagem + citazione stringa di connessione MSSQL. Le stringhe di connessione di database SQL di Azure richiedono una codifica URL accurata di caratteri speciali nelle password. Consulta la documentazione del provider Prisma SQL Server.
- SQLAlchemy + driver pyodbc. Installa e consulta la versione corretta del driver (
ODBC Driver 18 for SQL Serveral 2026). Fissa le versionirequirements.txtper evitare sorprese. - Django ORM + mappatura dei tasti principali.
IDENTITYle colonne richiedono ildjango-mssql-backendpacchetto eIDENTITY_INSERTla gestione per i carichi dati. - TypeORM + camelCase. Imposta
entityPrefixe usa strategie di denominazione in linea con le tue istruzioni personalizzate se il tuo team usa una convenzione specifica.
Condividere la propria esperienza
Per ottimizzare e migliorare GitHub Copilot per l'estensione MSSQL, usare il modello di problema GitHub seguente per inviare commenti e suggerimenti: Commenti e suggerimenti su GitHub Copilot
Quando si inviano commenti e suggerimenti, è consigliabile includere:
Scenari testati: segnalare le aree su cui ci si è concentrati, ad esempio la creazione dello schema, la generazione di query, la sicurezza, la localizzazione.
Cosa ha funzionato bene: descrivere tutte le esperienze che si sono sentite fluide, utili o superate le aspettative.
Problemi o bug: includere eventuali problemi, incoerenze o comportamenti confusi. Screenshot o registrazioni dello schermo sono particolarmente utili.
Suggerimenti per il miglioramento: condividere idee per migliorare l'usabilità, espandere la copertura o migliorare le risposte di GitHub Copilot.
Contenuti correlati
-
Avvio rapido: Chatta con il
@mssqlpartecipante (modalità domanda) - Guida introduttiva: Generare codice
- Guida introduttiva: Usare il generatore di query intelligenti
- Guida introduttiva: Assistente di ottimizzazione delle query
- Avvio rapido: Usa istruzioni personalizzate per allineare GitHub Copilot alle tue convenzioni T-SQL
- Limitazioni e problemi noti