我有一对一的映射,我试图用Fluent NHibernate映射表达。我知道网上有很多类似的问题/答案但是几个小时后我很难找到我的具体问题的答案。
我有Member
和Subscription
个对象。
成员可以拥有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
的关联?