¿Cómo actualizar solo una tabla para el modelo desde la base de datos con Entity Framework?


Tengo un modelo generado a partir de db con Entity Framework. Cuando tengo algún cambio en la base de datos, actualizo el modelo desde la base de datos para obtener el cambio en el modelo. Pero esta actualización se aplica a todas las entidades (tablas) incluidas en el modelo.

Ahora añado una nueva columna en una tabla Tab1. No quiero actualizar el modelo desde la base de datos como algunos otros cambios que no quiero incluir en el modelo. Puedo agregar la nueva propiedad en model para entity Tab1 manualmente. luego causó un error de mapeo.

Así que necesito actualizar Model.Store para que la tabla incluya la nueva columna. Significa que quiero actualizar el modelo solo para Tab1.

¿Cómo puedo hacer esto?

Author: marc_s, 2013-06-07

3 answers

El archivo EDMX es un archivo XML que es una combinación de 3 partes diferentes que componen todo. Si hace clic derecho en su archivo EDMX y elige " Abrir con... Editor XML" verás las 3 secciones diferentes:

  • <edmx:ConceptualModels>
  • <edmx:StorageModels>
  • <edmx:Mappings>

Estas secciones se pueden editar manualmente, bajo su propio riesgo! :-)
De esa manera usted puede modificar solo lo que necesita.

Tenga en cuenta que también es posible generar archivos CSDL, SSDL y MSL en lugar de tenerlos incrustados en el archivo binario, cambiando la propiedad " Meta Artifact Processing "de su modelo a"Copy to Output Directory".

Si no desea hacer esto manualmente, está la herramienta Huagati DBML/EDMX, es gratuita y puede descargarla desde huagati official site o desde visual studio gallery, que es un complemento de Visual Studio que le permite seleccionar qué cambios debe hacer.

 42
Author: MaxSC,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-01 12:40:10

Uso el siguiente truco (Condicional). Esto solo se puede hacer cuando ninguna Tabla depende de la tabla que desea actualizar.

  1. Suprímase el cuadro que debe actualizarse.
  2. Haga clic derecho en Modelo y seleccione 'Actualizar modelo desde la base de datos'. La Tabla se mostrará en la pestaña 'Añadir'. Seleccione esta tabla y Actualice el modelo.

Precaución : Si otras tablas existentes tienen cambios en ellas, EF actualizaría estos cambios también.

 5
Author: Abhijeet Nagre,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-06 20:40:22

Hay una manera de hacerlo automáticamente.

Haga clic con el botón derecho en archivo edmx > actualizar modelo desde la base de datos > Actualizar pestaña > Tablas > seleccione la tabla(que desea actualizar) y presione finalizar eso es todo.

 -14
Author: user3152641,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-01-02 06:19:05