EF6 vs. EF Core: modelo de datos

EF6 vs. EF Core: modelo de datos

Cuando hablamos de Entity Famework 6 «clásico» debemos tener en cuenta que su versión 1.0 apareció en 2008 y la última versión corresponde con la 6.4.4 lanzada el 15 de mayo de 2020. Todo los ORM (Object-Relational mapping), como también lo son NHibernate ó Dapper, facilitan una capa intermedia entre las bases de datos relacionales y el modelo de objetos de nuestra aplicación.

Dentro de la hoja de ruta de Microsoft para unificar tecnología .NET tambien afecta a este ORM, la nueva versión EF Core es una versión más ligera, extensible, modular y multiplataforma aunque algunas características previas todavía están pendientes de valorar su integración.

Leer más

Actualizar modelo .edmx con los cambios de la base de datos

La realización de cambios en la base de datos debe reflejarse dentro del modelo generado en Visual Studio. Desde un cambio mínimo, por ejemplo un campo de una tabla determinada pasa a admitir valores nulos, a cualquier otro complejo de adición/modificación/eliminación de tablas, referencias, triggers, procedimientos, relaciones…

1.- Abrimos nuestro archivo edmx con el editor predeterminado de Visual Studio: ADO.NET Entity Data Model Designer y pulsamos con el botón derecho sobre una zona libre en la opción «Udate Model from Database»

2.- Una vez que tenemos nuestro modelo reflejado, actualizamos el fichero con extensión «IntranetModel.TT» pulsando con el botón derecho sobre ellos y seleccionado «Run custom tool»

3.- Lanzamos «Run custom tool» sobre el fichero «IntranetModel.context.TT»

En el caso de haber cambiado el namespace o el nombre del proyecto, deberemos renombrarlos de nuevo en el archivo CS correspondiente del context de la clase. Tambien es posible realizar cambios parciales en partes concretar del modelado desde «Model browser«.

NOTA 1: Si a pesar de ello, no se reflejan los cambios, podemos eliminar ambos ficheros y volver a añadir «Add code generation item» seleccionando la versión correspondiente de «EF 6.x DbContext Generator»

NOTA 2: En ocasiones al actualizar un tipo de dato, es posible que no se refleje correctamente en el modelo EDMX, por ejemplo, el paso de un campo de string a bintint (int64). Revise manualmente los posibles cambios y vuelve a realizar el proceso.