[NHibernate] Delete cascade
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:
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:
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:
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?