Vistas actualizables en Entity Framework 5/6

c# entity-framework-5 entity-framework-6

Pregunta

Tengo varias vistas que son actualizables de acuerdo con http://technet.microsoft.com/en-us/library/ms187956.aspx .

Todos mis puntos de vista siguen las especificaciones en el artículo incluido. He verificado en SQL Management Studio que las vistas se pueden actualizar, insertar y eliminar.

La investigación que he realizado me ha llevado a dos opciones para actualizar las vistas en mi Entity Framework 5/6 Model:

  1. Elimine la etiqueta de cada vista; sin embargo, cualquier trabajo realizado en MyContext.edmx se sobrescribe al actualizar el contexto desde la base de datos. Esto significa que esta solución no es muy viable para mi proyecto.

  2. Agregar un procedimiento almacenado de inserción, actualización y eliminación para cada vista y mapearlos en el diseñador. No me gusta especialmente la idea de tener que crear tantos procedimientos almacenados.

¿Hay alguna manera fácil de indicar a EF5 O EF6 que las vistas pueden agregarse a / actualizarse / eliminarse y no se eliminarán cuando se ejecuten los comandos subsiguientes "Actualizar modelo desde base de datos" sin escribir procedimientos almacenados para cada método de entrada (insertar, actualizar , eliminar) en cada vista?

Respuesta popular

Creo que su método más sencillo sería cambiar la definición de su EntitySet en su StorageModel para decirle que lo considere como una tabla, en lugar de una vista de base de datos.

Mirando la definición XML, donde dice

<EntitySet Name="Products" store:Type="Views" ..

le cambias eso a

<EntitySet Name="Products" store:Type="Views" ..

(Note que "Productos" es solo un ejemplo) Esto debería estar en su archivo .edmx.
Ver pág. 44, Lerman, "Programming Entity Framework", 2ª ed.

Espero que esto ayude.




Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué