Précédent   Forum du club des développeurs et IT Pro > Dotnet > Général Dotnet > Framework .NET
Framework .NET Vos questions relatives à l'utilisation des différents Framework .NET
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 02/10/2012, 15h14   #1
muadhib
Invité régulier
 
Homme
Développeur informatique
Inscription : juillet 2007
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juillet 2007
Messages : 21
Points : 9
Points : 9
Par défaut Entity Framework et Multiple Heritage

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 > Abstract
IdVehicule : int
NomProprietaire : String

Velo : Hérite de vehicule
Pas de propriété mais contiendra des méthodes
Motorise : Herite de Vehicule > Abstract
Consommation : float
DateMiseCirculation : date
Moto : Hérite de motorise
Pas de propriété mais contiendra des méthodes
Voiture : Hérite de motorise
Type : String (SUV, berline, etc.)
Scooter : Herite de motorise
Pas 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 :
Citation:
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.
muadhib est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2012, 08h59   #2
muadhib
Invité régulier
 
Homme
Développeur informatique
Inscription : juillet 2007
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juillet 2007
Messages : 21
Points : 9
Points : 9
Pas d'idée ?
Si besoin je peux ajouter plus de précision.
Merci d'avance.
muadhib est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2012, 11h29   #3
h2s84
Modérateur
 
Avatar de h2s84
 
Homme Holty Samba SOW
Développeur .NET
Inscription : mars 2007
Messages : 2 742
Détails du profil
Informations personnelles :
Nom : Homme Holty Samba SOW
Âge : 28
Localisation : Sénégal

Informations professionnelles :
Activité : Développeur .NET
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mars 2007
Messages : 2 742
Points : 5 175
Points : 5 175
Envoyer un message via MSN à h2s84 Envoyer un message via Skype™ à h2s84
Tu es sûr d'avoir bien appliqué ce que dit VS à savoir :
Citation:
Mapping conditions can be used to distinguish the rows that these types are mapped to.
Sinon mets-nous une capture d'écran du mappaging effectué pour ces différentes entités ?
__________________
Consultant .Net chez SoftFluent
Découvrir notre produit CodeFluent Entities

Adhérer à l'association Fier d'être développeur
Les FAQs sur les technologies .Net voir ici
Les cours et tutos sur les technologies .Net voir ici
Les critiques sur les livres parlant des technologies .Net voir ici
Pensez à la balise [CODE]
Pensez au tag si votre problème est résolu
h2s84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2012, 11h49   #4
muadhib
Invité régulier
 
Homme
Développeur informatique
Inscription : juillet 2007
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juillet 2007
Messages : 21
Points : 9
Points : 9
Salut,
Oui, j'ai une condition pour chaque entité sauf pour les entités abstract (Vehicule et Motorise). La valeur est différente pour chaque élément
Si je mets tout de même une condition avec une valeur lambda sur j'ai l'erreur suivante :
Citation:
Error 3034: Problem in mapping fragments starting at lines 90, 98:An entity is mapped to different rows within the same table. Ensure these two mapping fragments do not map two groups of entities with overlapping keys to two distinct groups of rows.
J'ai essayé dans ce cas de mettre la propriété abstract à false pour les entités Motorise et Vehicle et là ça compile. Mais dans mon cas, elles doivent être abstract.

Merci d'avance.
muadhib est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2012, 12h00   #5
muadhib
Invité régulier
 
Homme
Développeur informatique
Inscription : juillet 2007
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juillet 2007
Messages : 21
Points : 9
Points : 9
Personne n'a une idée ?
muadhib est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 21h41.


 
 
 
 
Partenaires

Hébergement Web