7

La situación: A veces, un esquema de base de datos no es lo que consideraría una representación ideal de la información del sistema y es posible que no pueda cambiarlo. Hemos estado utilizando Entity Framework para crear un modelo conceptual más agradable para codificar en situaciones como esta. Esto significa actualizar el modelo desde la base de datos y luego cambiarlo nosotros mismos, ya sea a través del diseñador o a través del archivo .edmx directamente usando un editor de texto.¿Puede el diseñador de Entity Framework 4.1 "actualizar el modelo desde la base de datos" solo para las entidades seleccionadas?

Problema: Cuando actualiza el modelo de la base de datos, todos los cambios realizados cuidadosamente se descartan. Esto puede hacer que agregar entidades nuevas sea una verdadera molestia, ya que básicamente se lo fuerza a hacerlo editando directamente el archivo .edmx.

La pregunta: ¿Hay alguna manera de conseguir que Entity Framework solo actualice las entidades seleccionadas desde la base de datos? ¿O es posible decirle que deje el resto del modelo solo cuando agrega una nueva entidad?

Gracias!

Respuesta

4

No, no hay forma de realizar actualizaciones selectivas con el diseñador incorporado. Además, el diseñador no descarta todos tus cambios. Por lo general, no toca el modelo conceptual (excepto en algunas ocasiones excepcionales en las que cambia continuamente el nombre de algunas asociaciones) y el mapeo, pero siempre elimina el modelo de almacenamiento y lo reemplaza con una nueva definición. Trabajé sin ningún problema con las modificaciones a mi modelo conceptual y el mapeo y ejecución de actualizaciones desde la base de datos.

El diseñador funciona como cualquier otro en Visual Studio: no se admite el toque del código generado (modelo de almacenamiento). Una vez que lo hagas, ya no puedes usar la actualización de la base de datos.

Hay commercial tool que probablemente sea compatible con una mejor actualización del modelo; puede intentar una versión de prueba.

1

Si actualiza las entidades seleccionadas, quiere decir solo una o más tablas, puede eliminar esas tablas del modelo y luego agregarlas de nuevo individualmente para extraer las tablas de cambios seleccionándolas individualmente. Lo hago a menudo como subyacente. las tablas se cambian (especialmente durante el desarrollo).

Terminas perdiendo todos los cambios manuales que realizaste en esas entidades re-agregadas después de que la entidad/tabla ingresó en el modelo (es decir, a menudo renombro mis propiedades de navegación y después de cada reimportación de la tabla necesito para cambiarles el nombre manualmente de nuevo).

Cuestiones relacionadas