Использование обновляемых View в Entity Framework

200
04 июня 2022, 21:10

Используется EF6. Для работы с базой данных используется подход db-first с созданием edmx модели. В базе есть таблица которая предыдущими разработчиками использовалась для хранения разных сущностей. При этом создавался один файл модели и в коде все операции выполнялись с помощью многочисленных if.

Задача оставив существующий код работоспособным, научится создавать по этой таблице разные классы. Наиболее логично как мне кажется создание на основе таблицы нескольких View каждое из которых представляло бы нужный класс. К таким View можно писать insert,update,delete так как оно ссылается на одну таблицу. Проблема в том, что при попытке обновить объект созданный на основе View возникает ошибка.

System.Data.Entity.Infrastructure.DbUpdateException: "Unable to update the EntitySet 'Sample' because it has a DefiningQuery and no <InsertFunction> element exists in the <ModificationFunctionMapping> element to support the current operation."

Суть в том, что entity понимает, что это view и его в общем случае нельзя обновить .

Пока вижу 2 способа решения проблемы: 1 Создать Update, Insert, Delete function вручную. 2 Научиться (если это вообще возможно) для данных View настраивать конфигурацию вручную через Fluent Api.

Второй вариант нравится мне больше. Проблема в том, что Fluent Api предназначено скорее для подхода code-first. У меня не получается заставить вызывать метод OnModelCreating(DbModelBuilder modelBuilder).

Есть ли возможность совместно использовать EDMX модель и Fluent Api? Какие еще варианты решения можно предложить?

READ ALSO
Autofac: резолв зависимости типа ICommandHandlerAsync&lt;T&gt; без указания типа T

Autofac: резолв зависимости типа ICommandHandlerAsync<T> без указания типа T

сразу выделю вопрос, ниже будет подробное описание для чего мне это надо

164
Как Entity Framework отслеживает изменение объектов?

Как Entity Framework отслеживает изменение объектов?

Как Entity Framework отслеживает изменение объектов? Еще когда через методы идет вызов понятно, а как он отслеживает объект который мы получили,...

293
Нельзя выбрать базу данных

Нельзя выбрать базу данных

Вообщем на практике работаю в c# windows формах (в vs 2019)Хотел подключить базу данных

193
Бинарный поиск правой границы c#

Бинарный поиск правой границы c#

Нужно написать эффективную программу бинарного поиска поиска правой границы в упорядоченном массивеПрограмма должна удовлетворять условиям:...

177