Используется 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? Какие еще варианты решения можно предложить?
сразу выделю вопрос, ниже будет подробное описание для чего мне это надо
Как Entity Framework отслеживает изменение объектов? Еще когда через методы идет вызов понятно, а как он отслеживает объект который мы получили,...
Вообщем на практике работаю в c# windows формах (в vs 2019)Хотел подключить базу данных
Нужно написать эффективную программу бинарного поиска поиска правой границы в упорядоченном массивеПрограмма должна удовлетворять условиям:...