C# Nhibernate不级联删除

C# Nhibernate不级联删除,c#,database,class,nhibernate,nhibernate-mapping,C#,Database,Class,Nhibernate,Nhibernate Mapping,我对nhibernate有一个非常简单的问题(我刚开始使用它) 我有以下hbm映射文件: <class name="Customer" table="Customers" lazy="false"> <id name="Id" column="CustomerId"> <generator class="native"> </id> <property name="Name" /> <property name="Pict

我对nhibernate有一个非常简单的问题(我刚开始使用它)

我有以下hbm映射文件:

<class name="Customer" table="Customers" lazy="false">
<id name="Id" column="CustomerId">
    <generator class="native">
</id>
<property name="Name" />
<property name="Picture" type="BinaryBlob" />
<bag name="Orders" cascade="all-delete-orphan" lazy="false">
  <key column="CustomerId" />
  <one-to-many class="Order" />
</bag>
</class>

<class name="Order" table="Orders" lazy="false">
<id name="Id" column="OrderId">
    <generator class="native">
</id>
<property name="Name" />
<property name="Picture" type="BinaryBlob" />
<bag name="Products" cascade="all-delete-orphan" lazy="false"
  <key column="OrderId" />
  <one-to-many class="Product" />
</bag>
</class>

<class name="Product" table="Products" lazy="false">
<id name="Id" column="ProductId">
    <generator class="native">
</id>
<property name="Name" />
<property name="Picture" type="BinaryBlob" />
<property name="ProductStr" />
</class>


您必须在您的行李上设置
inverse=“true”

您的客户映射应如下所示:

<class name="Customer" table="Customers" lazy="false">
<id name="Id" column="CustomerId">
    <generator class="native">
</id>
<property name="Name" />
<property name="Picture" type="BinaryBlob" />
<bag name="Orders" cascade="all-delete-orphan" inverse="true" lazy="false">
  <key column="CustomerId" />
  <one-to-many class="Order" />
</bag>
</class>
更多信息

另一件您可能要考虑的是用<代码> > SET>代码>更改<代码>包>代码>原因是包允许重复,如所解释的。< /P>


并可能使用增强您的域。

请显示您的删除代码。@user779444:这有什么帮助吗?
<many-to-one name="Customer" column="CustomerId" not-null="true"/>
public virtual Customer Customer { get; set; }