Bonjour à tous,
Je rencontre un problème avec Entity Framework au niveau d'une relation.
J'ai une table Client qui contient une liste de client. J'ai une table Type qui contient la liste des types de client possible. C'est une table de référence.
Enfin, j'ai une table TypeClient qui fait la liaison entre ces deux tables.
En effet, un client peut être d'un ou plusieurs types à la fois. Il n'est donc pas possible de stocker l'id du type directement dans la table Client. La table intermédiaire est nécessaire.
Côté EF, cette table intermédiaire a été automatiquement symbolisée par une relation entre Client et Type. On ne voit pas l'entity "TypeClient".
Mon problème vient au moment ou je souhaite mettre un jour un Client. Imaginons que je souhaite ajouter à ce Client un Type, ou que je souhaite lui en retirer un, je vois pas comment faire.
Si je fais :
sur l’élément (Item) de la propriété de Navigation "Types" du Client, comment EF sait qu'il faut ajouter une ligne dans la table TypeClient mais pas dans la table Type qui est une table de référence (on doit rien faire sur cette table).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 context.Comptes.Attach(unClient); context.ObjectStateManager.ChangeObjectState(unClient, EntityState.Modified); .... context.ObjectStateManager.ChangeObjectState(item, EntityState.Added); context.SaveChanges;
Y'a un truc qui m’échappe à ce niveau là.
De même, comment faire pour supprimer une ligne dans TypeClient sans qu'EF n'essaye de supprimer aussi dans Type ?
Si j'essaye de faire simplement :
J'obtiens un joli message d'erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 context.ObjectStateManager.ChangeObjectState(item, EntityState.Deleted); context.SaveChanges;
Enfin, j'ai essayé de remplacer l'association par une véritable Entité mappée sur la table TypeClient et j'ai ensuite relié cette entité à Client et Type. Mais visiblement, il aime pas trop. Si je tente de valider, il me dit :
Y'a surement un qui qui m'échappe. Merci d'avance pour votre aide.Problem in mapping fragments starting at line 1057
Each of the following columns in table TypeClient is mapped to multiple conceptual side properties:
TypeClient.IdCli is mapped to <ClientTypeClient.TypeClient.IdCli, ClientTypeClient.Client.IdCli>
Partager