Использование свойства навигации в качестве дискриминатора в сценарии наследования TPH в Entity Framework 4 - PullRequest
0 голосов
/ 23 августа 2010

Я пытаюсь создать иерархию наследования TPH, используя внешние ключи / свойства навигации в качестве дискриминаторов, и у меня возникают некоторые проблемы с ее правильной настройкой.

У меня есть следующие объекты:

Person:
  Id (int)
  Name (nvarchar)
  PlaneId (int)
  CarId (int)

Car:
  Id (int)
  Name (nvarchar)

Plane:
  Id (int)
  Name (nvarchar)

с PlaneId и CarId beign FKs. У меня есть соответствующие таблицы в базе данных, и я могу создать концептуальную модель с помощью мастера VS2010 EF. Объект Person имеет два свойства навигации: Car и Plane.

.

Теперь я хочу извлечь два типа из Person:

Pilot (condition: PlaneId is not null)
Driver (condition: CarId is not null)

Итак, я добавляю Пилота сущности, говорю ему, чтобы он сопоставился с Персоном и добавляю условие PlaneId is not null. На этом этапе Visual Studio (или, я полагаю, edmgen) жалуется, что свойство Person.PlaneId with 'IsNull=false' condition must be mapped.

Каков мой следующий шаг? Я пробовал разные подходы, но не могу заставить его работать. Любая идея будет принята с благодарностью.

1 Ответ

2 голосов
/ 23 августа 2010
...