Cuando empecé a trabajar con EF Core, me encontré con una lista de comandos larga y confusa. Pero, con el tiempo, descubrí que solo necesito unos cuantos bien dominados para manejar el 90% de los casos.
Aquí te comparto los comandos esenciales de dotnet ef que uso constantemente para manejar migraciones, sincronizar modelos y hasta hacer ingeniería inversa de una base de datos.
Contenidos
1. Crear una migración nueva
dotnet ef migrations add NombreMigracionEste comando crea una nueva migración basada en los cambios que hiciste a tus modelos C#. Es como un “commit” para la base de datos.
Ejemplo:
dotnet ef migrations add Inicial
Consejo: nombra tus migraciones con sentido. Evita cosas como Add1 o prueba. Tu yo del futuro te lo agradecerá.
2. Aplicar migraciones a la base de datos
dotnet ef database updateEste comando ejecuta todas las migraciones pendientes sobre la base de datos actual. Es decir, traduce tus modelos en tablas reales.
3. Eliminar la última migración
dotnet ef migrations remove¿Te equivocaste al crear una migración? Si aún no la aplicaste, puedes eliminarla sin consecuencias con este comando. Ideal cuando estás haciendo pruebas o cambiaste de idea.
4. Ver el SQL que se generará
dotnet ef migrations scriptGenera el script SQL que ejecutaría EF Core, desde la migración inicial o entre dos migraciones específicas.
Es súper útil si tu equipo de DBA quiere revisar el SQL antes de aplicarlo en producción.
5. Ver detalles del proceso de actualización
dotnet ef database update --verbose
Este comando hace lo mismo que el database update, pero con lujo de detalles. Ideal si algo falla y necesitas entender qué está pasando.
6. Listar todas las migraciones existentes
dotnet ef migrations listTe muestra todas las migraciones que has creado en el proyecto. Buenísimo para saber en qué punto del historial estás.
7. Ver información del DbContext actual
dotnet ef dbcontext infoMuestra detalles como el nombre del DbContext, el proveedor que estás usando (ej. SQL Server), y más. Útil cuando tienes varios contextos en el mismo proyecto.
8. Generar modelos desde una base de datos existente
dotnet ef dbcontext scaffold "CadenaConexion" Microsoft.EntityFrameworkCore.SqlServer -o ModelsEste comando hace ingeniería inversa: crea modelos C# y un DbContext a partir de una base de datos ya existente.
A mí me ha salvado más de una vez cuando me entregan una base de datos “heredada” sin documentación. Solo asegúrate de tener una cadena de conexión válida.
¿Qué puedes lograr con estos comandos?
Con solo estos ocho comandos, puedes:
- Crear y aplicar migraciones para mantener sincronizados tu código y la base de datos.
- Revertir errores antes de que sea tarde.
- Ver y compartir SQL antes de desplegar.
- Reconstruir tu modelo desde bases de datos existentes.
En resumen: con este mini set de comandos, puedes cubrir prácticamente todo el ciclo de trabajo con EF Core. Si te los aprendes bien, ya tienes el 80% del camino recorrido.
¿Tienes algún comando extra que uses mucho y no aparece aquí? Me encantaría conocerlo.
