Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Invité régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    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 : 8
    Points
    8

    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 :
    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.

  2. #2
    Invité régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    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 : 8
    Points
    8

    Par défaut

    Pas d'idée ?
    Si besoin je peux ajouter plus de précision.
    Merci d'avance.

  3. #3
    Modérateur
    Avatar de h2s84
    Homme Profil pro Holty Samba SOW
    Développeur .NET
    Inscrit en
    mars 2007
    Messages
    3 021
    Détails du profil
    Informations personnelles :
    Nom : Homme Holty Samba SOW
    Âge : 29
    Localisation : Sénégal

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

    Informations forums :
    Inscription : mars 2007
    Messages : 3 021
    Points : 5 847
    Points
    5 847

    Par défaut

    Tu es sûr d'avoir bien appliqué ce que dit VS à savoir :
    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 FAQ 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

  4. #4
    Invité régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    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 : 8
    Points
    8

    Par défaut

    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 :
    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.

  5. #5
    Invité régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    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 : 8
    Points
    8

    Par défaut

    Personne n'a une idée ?

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •