Наследование в EntityFramework

265
09 декабря 2016, 08:47

Допустим, были сгенерированы Классы-сущности и мне захотелось расширить какую-то сущность дополнительными полями(Например, вспомогательными для расчетов), которые не хочу что бы мапились.

Я выполняю наследование от сущности, создаю экземпляр, который заполняю данными.

Затем я хочу добавить запись в базу в таблицу Entity и выполняю db.Entity.Add((Entity)ExtendedEntity) и получаю ошибку

'Object mapping could not be found for Type with identity'

Подскажите, как избежать ошибки или может быть есть более корректный путь?

Answer 1

Если передаете экземпляр этого нового типа в EF, то ожидаете, что он будет сохраняться (а иначе зачем суете в EF?). А раз так, то о нем нужно знать EF и о том как его маппить. Для того чтобы подцепил потомка добавляете его сразу, базовый класс схватить и так. О типах мапинга наследников на https://msdn.microsoft.com/en-us/data/jj591617#2. Затем ваши поля для расчетов помечаете как [NotMapped]. Об этом на https://msdn.microsoft.com/en-us/data/jj591583#NotMapped

Удачи!

READ ALSO
Не работает скролл в ListView

Не работает скролл в ListView

В моем ListView с кнопками по непонятной мне причине, не хочет работать скролл Вот Listview

276
Как правильно представить if-else- блок в Unit Test?

Как правильно представить if-else- блок в Unit Test?

ЗдравствуйтеЯ хочу с помощью Unit Test проверить, или моя функция правильно работает и не знаю как заменить блок if-else?

241
TwoWay Binding не работает через DependencyProperty

TwoWay Binding не работает через DependencyProperty

При изменении свойства через TwoWay binding не производится работа с переменной, только со свойством зависимости

244
Хочу отображать блокнот на Локскрине Windows 10

Хочу отображать блокнот на Локскрине Windows 10

Хочу, чтобы на локскрине (экране блокировки) отображался блокнотикКод обваливается на этой строчке:

212