Мне кажется, что странное явление происходит с унаследованными сущностями (TPT) в EF4.
У меня есть три сущности.
1. Актив
2. Недвижимость
3. Деятельность
Свойство является производным типом Актива.
В собственности есть много видов деятельности (многие ко многим)
При моделировании этого в моем EDMX все выглядит нормально, пока я не попытаюсь вставить новое свойство в базу данных. Если свойство не содержит никаких действий, оно работает, но все черт побери, когда я добавляю некоторые новые действия в новое свойство.
Как выяснилось после 2-х дней обхода в интернете, я заметил, что в хранилище EF (SSDL) некоторые ограничения между сущностями не были обнаружены в процессе обновления.
Таблица Property_Activity, которая связывает свойства и действия, показывает только
одно ограничение
FK_Property_Activity_Activity, но
FK_Property_Activity_Property был
отсутствует.
Я знал, что это аномалия Entity Framework, потому что, когда я переключил отношения в базе данных на:
Актив <-> Актив_Активность <-> Активность
После обновления собраны все ограничения внешнего ключа, и сохранение выполнено успешно, с действиями в новом свойстве или без них.
Это предназначено или ошибка в EF?
Как мне обойти эту проблему?
Стоит ли вообще отказаться от наследства?