Bonjour tout le monde,
J'ai besoin de votre aide, je suis bloqué je ne sais plus comment m'y prendre.
Je vais essayer de simplifier au maximum mon problème.
J'ai les tables suivantes :
Activite
[activite_id] int
[activite_nom] nvarchar(35)
J'ai une contrainte d'index d'unicité sur activite_nom pour éviter les doublons.
MembreCasting
[mc_id]
[mc_nom]
[activite_id]
Avec une cléf étrangère sur ACTIVITE (avec activite_id)
Ce que je fais :
- J'utilise en C# l'API allocine pour récupérer des informations sur les séries. Associée à chaque série il y a une liste de personnes (ma table MembreCasting). Ces personnes ont des roles différents (acteur, actrice, réalisateur etc... qui correspondent à ma table Activite)
- J'ai crée des objets adapteurs (pour faire un mapping entre les objets allocine et les miens).
Le problème que je rencontre :
Comme vous vous en doutez je rencontre un problème avec l'index [activite_nom]. Mon objet Serie contient une liste de MembreCasting . Chaque MembreCasting contient Activite.
Mon adapteur fonctionne trés bien pour remplir mon objet (qui contient d'autres objets) mais c'est lors du SaveChanges que EF me dit :
Plusieurs entités ajoutées ont peut-être la même clé primaire.
J'ai bien compris le problème qui est que chaque MembreCasting contient une Activite qui potentiellement à le même nom. Du coup ma contrainte d'unicité n'est pas contente mais comment faire ?
J'ai essayé de récupérer l'activité si elle existe déjà pour qu'EF l'associe à une activité existante mais il ne l'a récupère jamais vu que le SaveChanges se fait tout à la fin.
J'éspère que vous avez compris mon problème et que vous allez avoir le courage de lire jusque ici.
Pour info : j'utilise Repository pattern et UnitOfWork.
Merci d'avance,
Vinceee38
Partager