EF: отдельная таблица для каждого типа сущности в иерархии
Работая с моделью данных EF 4, скажем, у нас есть тип с именем "Animal" и два других типа "Bird" и "Horse", которые наследуются от типа Animal.
Я хочу, чтобы свойства типа Animal наследовались по подтипам, но я хочу, чтобы эти подтипы имели свои отдельные таблицы, каждая из которых повторяла столбцы, унаследованные от Animal. Тип Animal не будет существовать в базе данных. С точки зрения базы данных не будет наследования, но наличие наследования в модели EF облегчит управление моделью.
Можно ли определить такую модель / отображение в EF?
2 ответа
Вам нужно отображение TPC (Таблица для конкретного типа или Таблица для класса).
Да, он называется "Таблица для каждого типа", и здесь есть прохождения
http://msdn.microsoft.com/en-us/library/cc716702.aspx
http://msdn.microsoft.com/en-us/library/bb738685.aspx
Изменить: Тем не менее, если вы также можете посмотреть на таблицу для конкретного типа. Схемы различных типов сравниваются здесь http://msdn.microsoft.com/en-us/library/cc716779.aspx
"В этом сценарии сопоставления каждый неабстрактный тип сопоставляется с отдельной таблицей. Каждая из этих таблиц должна иметь столбцы, которые сопоставляются со всеми свойствами производного типа, включая свойства, унаследованные от базового типа".