C# Nhibernate不级联删除
我对nhibernate有一个非常简单的问题(我刚开始使用它) 我有以下hbm映射文件: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
<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; }