Matices al trabajar con migraciones EF

Este artículo no pretende ser una guía para trabajar con migraciones de EF. No habrá información sobre cómo crearlos aquí. Aquí he recopilado algunos puntos resbaladizos e intentos de sortearlos. ¡Empecemos!





Iniciar migraciones al iniciar la aplicación

¿Está familiarizado con el siguiente código?





context.Database.Migrate();
      
      



Si es así, lo más probable es que realice migraciones automáticamente al inicio del proyecto. Bueno o malo, puedes discutirlo en los comentarios. Yo, a mi vez, quiero advertir contra lo siguiente.





cmd, PS , , 2 : . - , . - , (sln). .





? , ( ) . , , , , , , . ? , . , , , , , Remove-Migration, , , . , , Remove-Migration. , , ?





, 2 :









  1. .





, . .





-, :





  1. , .





  2. , , .





, Remove-Migration. , . Remove-Migration (csproj). , , , Git ( ) .





, ( ). csproj .





SQL

, , (, , - ) SQL . Script-Migration. . . .





EF Core 3.0 Script-DbContext .





, , , , SQL .





Nute aquí, al parecer, es simple. Básicamente, estamos cambiando algo, creando migración y regocijándonos con el resultado. Sin embargo, el resultado puede ser inesperado cuando necesite eliminar un campo y crear otro del mismo tipo. En este caso, el migrador creará un comando para cambiar el nombre de la columna en la base de datos. Todos los datos de la columna eliminada, respectivamente, se transferirán a la nueva. En este caso, puede crear 2 migraciones: eliminar una columna y crear una nueva. Después de eso, para que no aparezcan 2 migraciones en lugar de una, puede combinar sus códigos Up y Down y eliminar el último.





Conclusión

En conclusión, quiero decir, esté atento a los datos, revise nuevas migraciones, piense en ellas, no tenga miedo de editarlas. Y todavía pisará cualquier rastrillo no obvio cuando trabaje con EF.








All Articles