J'essaie de créer une hiérarchie d'héritage TPH en utilisant des clés étrangères/propriétés de navigation comme discriminateurs et j'ai quelques difficultés à bien faire les choses.Utilisation d'une propriété de navigation comme discriminateur dans un scénario d'héritage TPH dans Entity Framework 4
J'ai les entités suivantes:
Person:
Id (int)
Name (nvarchar)
PlaneId (int)
CarId (int)
Car:
Id (int)
Name (nvarchar)
Plane:
Id (int)
Name (nvarchar)
avec PlaneId
et CarId
FKS beign. J'ai des tables correspondantes dans une base de données et je peux créer un modèle conceptuel en utilisant l'assistant VS2010 EF. L'entité Person
a alors deux propriétés de navigation, Car
et Plane
.
Maintenant, je veux tirer deux types de personnes:
Pilot (condition: PlaneId is not null)
Driver (condition: CarId is not null)
Alors, j'ajoute l'entité pilote, lui dire de la carte à personne et ajouter la condition PlaneId is not null
. À ce stade Visual Studio (ou edmgen je suppose) se plaint que la propriété Person.PlaneId with 'IsNull=false' condition must be mapped
.
Quelle est ma prochaine étape? J'ai essayé différentes approches, mais je n'arrive pas à le faire fonctionner. Toute idée serait grandement apprécié.