Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
GitHub Copilot y la extensión MSSQL funcionan con todos los principales frameworks de mapeo objeto-relacional (ORM) para SQL Server y Azure SQL Database. Esta referencia cubre los ORMs compatibles, lo que cada uno puede hacer y un ejemplo de extremo a extremo que te lleva de una tabla de SQL Server a un modelo tipado, migración y método de acceso a datos.
Conclusiones clave
- GitHub Copilot genera modelos, migraciones y código de acceso a datos adaptados a tu ORM elegido.
- El
@mssqlparticipante del chat lee el esquema de tu base de datos y lo utiliza como contexto al generar código ORM. - Las instrucciones personalizadas pueden imponer convenciones tanto en capas Transact-SQL (T-SQL) como en ORM.
Matriz de soporte ORM
| ORM | Pila | Models | Migrations | Esquema primero | Primero el código |
|---|---|---|---|---|---|
| Entity Framework Core | .NET y C# | Sí | Sí | Sí | Sí |
| Prisma | Node.js/TypeScript | Sí | Sí | Sí | Sí |
| Secuela | Node.js | Sí | Sí | Sí | Sí |
| SQLAlchemy | Python | Sí | Sí (vía Alembic) | Sí | Sí |
| Django ORM | Python | Sí | Sí | Sí | Limitado |
| TypeORM | Node.js/TypeScript | Sí | Sí | Sí | Sí |
| Llovizna | Node.js/TypeScript | Sí | Sí | Sí | Sí |
| Dapper | .NET y C# | Micro-ORM | Manual | No | Sí |
Escenario de extremo a extremo
Cada sección utiliza el mismo escenario: tienes SalesLT.Customer SQL Server y quieres añadir una email columna, generar un modelo tipado y producir un método de acceso a datos.
Entity Framework Core (un marco de trabajo para el desarrollo de aplicaciones usando .NET)
1. Generar el modelo
@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. Generar la migración
@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. Generar el método de acceso a datos
@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. Generar el modelo de esquema
@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. Generar la migración
@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. Generar el método de acceso a datos
@mssql Write a TypeScript function that uses the Prisma client to
return all active customers ordered by last name, including strict
TypeScript types.
Secuela
1. Generar el modelo
@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. Generar la migración
@mssql Generate a Sequelize migration in JavaScript to add an
`email` column (STRING(256), nullable) to the `Customer` table in
the `SalesLT` schema.
3. Generar el método de acceso a datos
@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. Generar el modelo
@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. Generar la migración de 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. Generar el método de acceso a datos
@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. Generar el modelo
@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. Generar la migración
@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. Generar el método de acceso a datos
@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. Generar la entidad
@mssql Generate a TypeORM entity class for SalesLT.Customer.
Use decorators for @Entity, @Column, @PrimaryGeneratedColumn.
Include DATETIME2 and NVARCHAR mappings for SQL Server.
2. Generar la migración
@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. Generar el método de acceso a datos
@mssql Write a TypeORM repository method that uses the query
builder to return all active customers ordered by last name.
Include strict TypeScript types.
Llovizna
1. Generar el esquema
@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. Generar la migración
@mssql Generate a Drizzle migration SQL file to add an `email`
column (nvarchar 256, nullable) to the SalesLT.Customer table.
3. Generar el método de acceso a datos
@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 es un micro-ORM sin soporte para generación o migración de esquemas, pero GitHub Copilot puede generar métodos de acceso a datos que utilizan los métodos de extensión de Dapper sobre un esquema existente.
@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.
Patrones comunes y advertencias
- Entity Framework Core + SQL Server recopilación. Para comparaciones con distinción de mayúsculas y minúsculas, se establece
EF.Functions.Collateexplícitamente en las consultas. No des por hecho que la clasificación por defecto coincide con la configuración a nivel de servidor de SQL Server. - Cotización de cadena de conexión Prisma + MSSQL. Las cadenas de conexión de Azure SQL Database requieren una codificación cuidadosa de la URL de caracteres especiales en las contraseñas. Consulta la documentación del proveedor de Prisma SQL Server.
- SQLAlchemy + controlador pyodbc. Instala y consulta la versión correcta del controlador (
ODBC Driver 18 for SQL Servera fecha de 2026). Coloca las versionesrequirements.txtcon fijación para evitar sorpresas. - Django ORM + asignación de teclas primarias.
IDENTITYLas columnas requieren eldjango-mssql-backendpaquete yIDENTITY_INSERTel manejo para las cargas de datos. - TypeORM + camelCase. Establece
entityPrefixy utiliza estrategias de nombres para que se alineen con tus instrucciones personalizadas si tu equipo usa una convención específica.
Compartir la experiencia
Para ayudarnos a refinar y mejorar GitHub Copilot para la extensión MSSQL, use la siguiente plantilla de problema de GitHub para enviar sus comentarios: Comentarios de GitHub Copilot
Al enviar comentarios, considere la posibilidad de incluir:
Escenarios probados: Háganos saber en qué áreas se ha centrado, por ejemplo, la creación de esquemas, la generación de consultas, la seguridad, la localización.
Lo que funcionó bien: describa las experiencias que se sintieron suaves, útiles o superaron sus expectativas.
Problemas o errores: incluya cualquier problema, incoherencias o comportamientos confusos. Las capturas de pantalla o las grabaciones de pantalla son especialmente útiles.
Sugerencias para mejorar: comparta ideas para mejorar la facilidad de uso, expandir la cobertura o mejorar las respuestas de GitHub Copilot.
Contenido relacionado
-
Inicio rápido: Chatear con el
@mssqlparticipante (modo preguntar) - Inicio rápido: Generación de código
- Inicio rápido: Uso del generador de consultas inteligentes
- Inicio rápido: Asistente del optimizador de consultas
- Inicio rápido: Usa instrucciones personalizadas para alinear GitHub Copilot con tus convenciones de T-SQL
- Limitaciones y problemas conocidos