Обновляемые представления в Entity Framework 5/6

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

Вопрос

У меня есть несколько представлений, которые можно обновить в соответствии с http://technet.microsoft.com/en-us/library/ms187956.aspx .

Все мои взгляды следуют спецификациям в описываемой статье. Я проверил в SQL Management Studio, что представления могут быть обновлены, вставлены и удалены.

Исследование, которое я провел, привело меня к двум вариантам, позволяющим обновлять представления в моей модели Entity Framework 5/6:

  1. Удалите тег из каждого представления, однако любая работа, выполненная в MyContext.edmx, перезаписывается при обновлении контекста из базы данных. Это означает, что это решение не очень жизнеспособно для моего проекта.

  2. Добавление в конструкцию вставки, обновления и удаления хранимой процедуры для каждого представления и отображения их. Мне не очень нравится идея создания этих многочисленных хранимых процедур.

Есть ли простой способ сказать EF5 OR EF6, что представления могут быть добавлены / обновлены / удалены из этого, не будут уничтожены при выполнении последующих команд «Обновить модель из базы данных» без записи хранимых процедур для каждого метода ввода (вставка, обновление , удалить) на каждом представлении?

Популярные ответы

Я бы подумал, что ваш самый простой способ - изменить определение вашего EntitySet в StorageModel, чтобы сказать ему, что он рассматривается как таблица, в отличие от представления базы данных.

Глядя на определение XML, где говорится:

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

вы меняете это на

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

(Обратите внимание, что «Продукты» - это просто пример) Это должно быть в вашем .edmx-файле.
См. Стр. 44, Лерман, «Программирование сущностной структуры», 2-е изд.

Надеюсь это поможет.




Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему