Bonjour à tous ,

j'ai un petit problème avec la gestion des associations n,n lorsque j'essaie d'ajouter un champ dans une table liée à une autre.

Voilà mon problème, j'ai une table PMT_TREVES qui peut contenir plusieurs PMT_MATERIAL et inversement. J'ai donc une table PMT_TREVES_MATERIAL qui représente mon association.
Lorsque j'utilisais Entity avec une base MySQL, il me générait une classe PMT_TREVES_MATERIAL donc c'était assez aisé de travailler avec cette association.
Cependant, depuis que je suis passé à Oracle, il ne me génère plus cette classe.
Au lieu de ça, la classe PMT_TREVES contient une ICollection<PMT_MATERIAL> et respectivement, la classe PMT_MATERIAL contient une ICollection<PMT_TREVES>.

Lorsque j'essaie d'ajouter une ligne dans la table PMT_A, je me charge donc de remplir l'ICollection<PMT_B> mais lorsque j'essaie de sauvegarder l'opération, ça plante.

Voici mon code :

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
 
[...]
int[] id_mat = pmt_treves_material_ID_MATERIAL; // contient les id de mes materiaux
 
PMT_TREVES pmt_treves = new PMT_TREVES();
pmt_treves = pmt;
 
List<PMT_MATERIAL> lst_mat = new List<PMT_MATERIAL>();
 
if (id_mat != null)
{
     foreach (var i in id_mat)
     {
           if (i != 0)
           {
                  PMT_MATERIAL pmt_mat = new PMT_MATERIAL();
                  pmt_mat = (db.PMT_MATERIAL.Where(p => p.ID_MATERIAL == i)).First();
                  pmt_mat.ID_MATERIAL = i;
                  lst_mat.Add(pmt_mat);
            }
      }
}
 
pmt_treves.PMT_MATERIAL = lst_mat;
db.PMT_TREVES.Add(pmt_treves);
db.SaveChanges();
Et voici le message d'erreur lorsque l'execution arrive à l'instruction "Db.SaveChange()" :

Une erreur s'est produite lors de l'enregistrement des entités qui n'exposent pas les propriétés des clés étrangères de leurs relations. La propriété EntityEntries retournera une valeur null car aucune entité n'a pu être identifiée comme étant la source de l'exception. La gestion des exceptions lors de l'enregistrement peut être simplifiée en exposant les propriétés des clés étrangères dans vos types d'entité. Pour plus d'informations, consultez l'InnerException.
J'espère que l'un de vous pourra m'aider parce que je ne vois vraiment pas là :/

Merci d'avance =D