Bonjour,
J'ai besoin d'utiliser EF avec de nombreux héritages complexes en TPH. Avant de me casser les dents à le mettre dans mon logiciel, j'ai fais un projet à part avec des classes (beaucoup) plus simples :
Vehicule > AbstractIdVehicule : int
NomProprietaire : String
Velo : Hérite de vehiculePas de propriété mais contiendra des méthodes
Motorise : Herite de Vehicule > AbstractConsommation : float
DateMiseCirculation : date
Moto : Hérite de motorisePas de propriété mais contiendra des méthodes
Voiture : Hérite de motoriseType : String (SUV, berline, etc.)
Scooter : Herite de motorisePas de propriété mais contiendra des méthodes
Ma table en bdd (SQL SERVER 2008) est :IdVehicule : int PK
NomProprietaire : varchar(50)
Consommation : float
DateMiseCirculation : date
Type : varchar(50)
Discriminator : varchar(10)
Je pars du principe que si Discrimator permet de faire la différence entre mes entités.
Dans mon EDMX j'ai les classes Motorise et Vehicule qui sont absract et sans condition. J'ai les classes Velo, scooter, moto et voiture se basent sur Dicscrimator avec chacun une valeur différentes.
Cependant, quand je compile j'ai l'erreur suivante :
Error 3032: Problem in mapping fragments starting at lines 78, 85:EntityTypes EF4InheritanceModel.Scooter, EF4InheritanceModel.Moto, EF4InheritanceModel.Voiture, EF4InheritanceModel.Velo are being mapped to the same rows in table Vehicule. Mapping conditions can be used to distinguish the rows that these types are mapped to.
Si quelqu'un a une idée d'où cela peut venir, je suis preneur.
Merci d'avance.
Partager