ObjectDeletedException:为什么NHibernate不能自动断开关联?

时间:2013-01-18 11:59:46

标签: c# nhibernate fluent-nhibernate fluent-nhibernate-mapping

我有一对一的映射,我试图用Fluent NHibernate映射表达。我知道网上有很多类似的问题/答案但是几个小时后我很难找到我的具体问题的答案。

我有MemberSubscription个对象。 成员可以拥有0..1个订阅,订阅实例只能属于一个成员。

以下是我的课程:

public class Member
{
    public Subscription Subscription { get; set; }
}

public class Subscription
{
    public Member Member { get; set; }

    public DateTime StartDate { get; set; }

    public DateTime FinishDate { get; set; }
}

这是我的映射(流利):

会员:

mapping.HasOne(member => member.Subscription)
    .PropertyRef(subscription => subscription.Member).Cascade.SaveOrUpdate();

对于订阅:

mapping.References(subscription => subscription.Member)
   .Unique().Cascade.None();

有一些要求,但我似乎无法满足所有要求:

  • Member级联保存到Subscription
  • 删除Subscription会破坏Member上的关联。
  • 删除Subscription不会删除Member

如果我在Member上设置了Cascade,则Subscription已保存,但删除Subscription会引发ObjectDeletedException

为什么NHibernate在Subscription上应用级联之前,无法首先自动删除与Member的关联?

0 个答案:

没有答案