entity framework - framework - Marco de la entidad: ¿cómo se actualiza el modelo cuando cambia el DB?
entity framework nuget (8)
Actualizar CodeFirst Model no es posible automáticamente. Yo tampoco lo recomiendo. Debido a que uno de los beneficios del código primero es que puede trabajar con clases de POCO. Si cambió estas clases POCO, no quiere que algún código generado automáticamente destruya su trabajo.
Pero puede crear una solución de plantilla agregue su entidad actualizada / agregada al nuevo modelo. luego recopile y mueva su nuevo archivo cs a su proyecto de trabajo. de esta forma no tendrás un conflicto si es una entidad nueva, simplemente puedes agregar un archivo cs relacionado al proyecto existente. si es una actualización simplemente agrega una nueva propiedad del archivo. Si solo agrega un par de columnas a una o dos de sus tablas, puede agregarlas manualmente a su clase POCO, no necesita ningún trabajo extra y esa es la belleza de trabajar con clases Code-First y POCO.
Si construye el archivo edmx desde la base de datos y luego cambia el db, ¿cómo hace para que el modelo recoja el cambio?
¿Eliminas todo el modelo y lo regeneras, o puedes detectar cambios?
Veo una publicación que menciona un "Actualizar su modelo" rt. comando del mouse en el archivo edmx, pero no lo veo.
Actualizando su edmx para reflejar los cambios realizados en su db (.net linq-to-entities)
Estoy empezando.
Aquí:
- Eliminar las tablas del diseñador de EDMX
- Rebuild Project / SLN (esto borrará la clase de modelo)
- Actualizar el modelo de la base de datos (lee todas las tablas que quieras)
- Reconstruir proyecto / SLN (esto recreará su clase de modelo incluyendo las nuevas columnas)
Esto podría ayudarlos chicos. (Lo he aplicado a mis proyectos)
Aquí están los 3 sencillos pasos.
- Ve a tu Solution Explorer . Busque el archivo .edmx ( generalmente se encuentra en el nivel raíz )
- Abra ese archivo .edmx, aparece una ventana de Diagrama modelo . Haga clic con el botón derecho en cualquier parte de esa ventana y seleccione " Actualizar modelo desde la base de datos ". Aparecerá una ventana del Asistente de actualización . Haga clic en Finalizar para actualizar su modelo.
- Guarde ese archivo .edmx.
Eso es. Se sincronizará / actualizará su base de modelo sobre los cambios en su base de datos.
Para instrucciones detalladas. Por favor visite el siguiente enlace.
Primera base de datos EF con ASP.NET MVC: Cambio de la base de datos y actualización de su modelo.
He encontrado que el diseñador "actualización desde la base de datos" solo puede manejar pequeños cambios. Si ha eliminado tablas, cambiado claves externas o (gasp) ha cambiado la firma de un procedimiento almacenado con un mapeo de función, eventualmente llegará a un estado tan desordenado que tendrá que eliminar todas las entidades y "agregar desde la base de datos" o simplemente elimine el recurso de edmx y comience nuevamente.
He estado trabajando en un proyecto, no demasiado extenso, que incorpora Entity Framework, una docena de tablas y aproximadamente 15 procesos y funciones almacenados. Después de semanas de desarrollo, intentar actualizar mis tablas y procesos almacenados ha arrojado resultados mixtos en cuanto a la actualización exitosa del modelo. Algunas veces los cambios son efectivos, la mayoría de las veces no lo son. Los cambios simples de columna (cambio de orden, adición, eliminación o cambio de nombre) a veces funcionan, la mayoría de las veces no. Visual Studio parece tener más problemas para actualizar que simplemente agregar nuevos. También presenta más problemas con los cambios de proceso almacenados que no se reflejan, especialmente cuando las columnas se agregan o eliminan o se renombran. No he detectado ningún comportamiento constante, por lo que no puedo decir "Este tipo de cambio siempre se actualizará y este tipo de cambio no".
Resultado final, si desea una solución 100% efectiva, elimine el archivo EDMX del proyecto, agregue el elemento "nuevo" al proyecto (Modelo de datos de la entidad ADO.NET) y asegúrese de usar el mismo nombre para el Nombre del modelo. Esto funciona todo el tiempo.
No sé por qué no se actualiza automáticamente, pero después de construir la solución, cualquier clase de modelo o plantilla que borre o modifique se actualizará desde la base de datos una vez que "Reconstruya la solución" .
¡Funciona en mi Visual Studio 2015!
Solo tuve que actualizar un modelo .edmx. La opción de modelo / Ejecutar herramienta personalizada no actualizaba los campos para mí, pero una vez que tuve abierto el diseñador gráfico, pude cambiar el nombre de los campos manualmente.
¿Estás mirando el diseñador o la vista de código? Puede obligar al diseñador a abrir haciendo clic con el botón derecho en su archivo EDMX y seleccionando Open With -> ADO.NET Entity Data Model Designer
Haga clic con el botón derecho en la superficie de diseñador del diseñador de EDMX y haga clic en Update Model From Database...
Todas las entidades se actualizan de manera predeterminada, las nuevas entidades solo se agregan si las selecciona.
EDITAR: si no está refrescando bien.
- Seleccione todas las tablas y vistas en el diseñador de EDMX.
- Borra los.
- Luego, actualice el modelo de la base de datos