IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entity Framework Discussion :

héritage avec ADO.NET Entity Data Model


Sujet :

Entity Framework

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Par défaut héritage avec ADO.NET Entity Data Model
    bonjour,

    voilà je commence un projet en ASP.net mcv 4 avec une base sqlserver, et j'ai une exemple d'héritage dans ma base.

    entité maitresse 'article', entités filles 'project' + 'tutorial_part' :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    create table article (
       id_article           int                  not null,
       titile_article       varchar(128)         not null,
       text_article         text                 not null,
       constraint pk_article primary key nonclustered (id_article)
    )
    go
     
    create table project (
       id_article           int                  not null,
       beginning_project    datetime             not null,
       ending_project       datetime             not null,
       url_project          varchar(128)         not null,
       written_at_project   datetime             not null,
       constraint pk_project primary key (id_article)
    )
    go
     
    create table tutorial_part (
       id_article           int                  not null,
       constraint pk_tutorial_part primary key (id_article)
    )
    go
     
    alter table project
    add constraint foreign key fk_project (id_article) references article(id_article)
    go
     
    alter table project
    add constraint foreign key fk_tutorial_part (id_article) references article(id_article)
    go
    j'ai créé ma base et mon projet sous vs2010. je cré mon Data Entity Model et je fait clic droit > ajouter > héritage.
    je sélectionne mon entité parente, une des entités filles, et je clique sur ok.

    et là j'obtiens toute une flopée d'erreurs déplaisantes :
    Erreur 1 Erreur 19*: Un membre nommé id_article ne peut pas être défini dans la classe myPortfolioModel.project. Il est défini dans la classe ancêtre myPortfolioModel.article. C:\Users\Maxime\Desktop\projets\myPortfolio\myPortfolio.ClassLibrary\DataAccess\Generated\Linq\myPortfolioModel.edmx 182 11 myPortfolio.ClassLibrary


    Erreur 2 Erreur 113*: Multiplicity n'est pas valide dans le Role «*project*» de la relation «*FK_project_article*». Dans la mesure où les propriétés de Dependent Role ne sont pas les propriétés de clé, la limite supérieure de la multiplicité du Dependent Role doit être *. C:\Users\Maxime\Desktop\projets\myPortfolio\myPortfolio.ClassLibrary\DataAccess\Generated\Linq\myPortfolioModel.edmx 325 13 myPortfolio.ClassLibrary


    Erreur 3 Erreur 111*: Les propriétés référencées par le Principal Role project doivent être rigoureusement identiques à la clé de l'EntityType myPortfolioModel.project référencé par le Principal Role dans la contrainte de relation pour le Relationship myPortfolioModel.FK_pro_project. Assurez-vous que toutes les propriétés de la clé sont spécifiées dans le Principal Role. C:\Users\Maxime\Desktop\projets\myPortfolio\myPortfolio.ClassLibrary\DataAccess\Generated\Linq\myPortfolioModel.edmx 409 13 myPortfolio.ClassLibrary
    j'aimerais vraiment pouvoir avancer dans mon projet :/
    Quelqu'un saurait comment me dépatouiller de là svp ?
    merci

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Par défaut
    j'ai trouvé une solution de secours.
    Je cré un Data Entity Model vide, je recré les entités une par une avec les associations... Pour l'instant j'avance bien, mais là je tombe sur une association ternaire, comment puis-je faire pour relier 3 tables ?

    https://picasaweb.google.com/lh/phot...eat=directlink

    merci

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Par défaut
    bon, je me suis débrouillé pour faire quelque chose sans association ternaire. lorsque je sauvegarde mon projet, j'ai des messages d'avertissement de ce genre :
    Avertissement 1 Erreur 11007*: Le type d'entité 'article' n'est pas mappé. C:\Users\Maxime\Desktop\projets\myPortfolio\myPortfolio.ClassLibrary\DataAccess\Generated\Linq\myPortfolioModel.edmx 76 9 myPortfolio.ClassLibrary
    comment dois-je mapper mes entités ? déjà je pense que je vais devoir créer ma base en fonction des mes objets.

  4. #4
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut
    j'ai très peu utilisé entity framework mais je pense que quand tu as fait ça
    j'ai créé ma base et mon projet sous vs2010. je cré mon Data Entity Model et je fait clic droit > ajouter > héritage.
    je sélectionne mon entité parente, une des entités filles, et je clique sur ok.
    il faut d'abord supprimer la colonne id article de l'entité fille et le lien s'il en existe toujours un avant d'ajouter ton héritage

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Par défaut
    à vrai dire je trouve que le fait de créer la base à partir de VS2010 est beaucoup plus clair, le schéma comprend moins d'éléments superflus. j'ai pu jeter un coup d’œil sur le script SQL généré par VS2010, il a l'air correct.
    Si cette méthode fonctionne je continuerais ainsi. sinon je retournerais à la première méthode que j'ai utilisé.
    Sais-tu en quoi consiste le mappage des entités et comment procéder ?

  6. #6
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut
    je suis vraiment pas un expert, je pense que tu parles du mappage entre l'entité tel quel est dans visual studio et tes tables dans sql server, par contre je sais pas comment faire ça je pense que c'est automatique à partir du moment que ta crée tes entités et généré ton script depuis, le mappage devrait être correct

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur avec ADO.NET Entity Data Model en tant que DLL
    Par Jeremie1967 dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 29/11/2013, 13h56
  2. [C#] ADO.NET Entity Data Model (.edmx) et Schéma SQL Server
    Par gargouilleBL dans le forum Accès aux données
    Réponses: 3
    Dernier message: 16/06/2011, 13h12
  3. Réponses: 5
    Dernier message: 01/03/2011, 13h34
  4. je trouve pas Ado.Net Entity data model
    Par doudou_ca dans le forum Entity Framework
    Réponses: 8
    Dernier message: 23/05/2010, 00h46
  5. Ajout de ADO.NET Entity Data Model
    Par L'aigle de Carthage dans le forum Framework .NET
    Réponses: 1
    Dernier message: 21/05/2010, 21h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo