Bonjour,

Voici mon problème : je n'arrive pas à effectuer un Delete en cascade avec NHibernate.

- Mes 2 tables :
Produit (id(PK), name)
Reference (id(PK), reference, produit_id(FK))
Un produit peut avoir plusieurs références.

- Mes 2 classes :
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
 
    private int id;
    private string name;
    private IList referencesList;
    public int Id
    {
      get { return id; }
      set { id = value; }
    }
    public string Name
    {
      get { return name; }
      set { name = value; }
    }
    public IList ReferencesList
    {
      get { return referencesList; }
      set { referencesList = value; }
    }
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
 
    private int id;
    private string reference;
    private Produit produit;
    public int Id
    {
      get { return id; }
      set { id = value; }
    }
    public string Reference
    {
      get { return reference; }
      set { reference = value; }
    }
    public Produit Produit
    {
      get { return produit; }
      set { produit= value; }
    }
- Mes 2 fichiers de mapping
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
 <class name="Produit" table="Produit">
    <id name="Id" column="id">
      <generator class="native"/>
    </id>
    <property name="Name" column="name" />
    <!-- Linked objects list -->
    <bag name="ReferencesList" cascade="all">
      <key column="produit_id" />
      <one-to-many class="Reference" />
    </bag>
  </class>
 
  <class name="Reference" table="Reference">
    <id name="Id" column="id">
      <generator class="native"/>
    </id>
    <property name="Reference" column="reference" />
    <!-- Linked object -->
    <many-to-one name="Produit" class="Produit" column="produit_id" not-null="true" cascade="delete" />
  </class>
- Dans mon code C# :
J'ai un objet Produit p (qui contient une liste de Reference). Lorsque j'appelle la méthode Delete(p) j'obtient une erreur :
"Cannot insert the value NULL into column 'produit_id'"
J'ai bien compris qu'il y a un problème avec la suppression des références mais je ne vois pas d'où ça vient. Sans doute du fichier de mapping non?