Nhibernate 如何关闭级联删除?

Nhibernate 如何关闭级联删除?,nhibernate,fluent-nhibernate,nhibernate-mapping,s#arp-architecture,fluent-nhibernate-mapping,Nhibernate,Fluent Nhibernate,Nhibernate Mapping,S#arp Architecture,Fluent Nhibernate Mapping,我有背向参考的课程: public class Employee : Entity { private string _Name; private string _Position; private Employee _SupervisorBackRef; private IList<Employee> _Subordinates; private IList<BusinessPartner

我有背向参考的课程:

public class Employee : Entity
    {
        private string _Name;
        private string _Position;
        private Employee _SupervisorBackRef;
        private IList<Employee> _Subordinates;
        private IList<BusinessPartner> _BusinessPartners;

        public virtual string Name
        {
            get { return _Name; }
            set { _Name = value; }
        }

        public virtual string Position
        {
            get { return _Position; }
            set { _Position = value; }
        }

        public virtual Employee SupervisorBackRef
        {
            get { return _SupervisorBackRef; }
            set { _SupervisorBackRef = value; }
        }

        public virtual IList<Employee> Subordinates
        {
            get { return _Subordinates; }
            set { _Subordinates = value; }
        }

        public virtual IList<BusinessPartner> BusinessPartners
        {
            get { return _BusinessPartners; }
            set { _BusinessPartners = value; }
        }
    }
问题是,尽管我试图推翻它,但若我删除任何主管,它就会删除他的所有下属。我试着这样做:

class EmployeeOverride : IAutoMappingOverride<Employee>
{
    public void Override(FluentNHibernate.Automapping.AutoMapping<Employee> mapping)
    {
        mapping.HasMany(x => x.Subordinates).Cascade.None();
        mapping.HasOne(x => x.SupervisorBackRef).Cascade.None();
    }
}
class EmployeeOverride:IAAutoMappingOverride
{
公共无效覆盖(FluentNHibernate.Automapping.Automapping映射)
{
mapping.HasMany(x=>x.substances.Cascade.None();
mapping.HasOne(x=>x.SupervisorBackRef).Cascade.None();
}
}
但这是行不通的。我尝试将其更改为其他不同的组合,我尝试了此覆盖删除,但没有任何帮助

如果我删除任何员工,它将删除其所有下属

我不知道如何识别这个覆盖函数是否有效


从互联网上的许多文本中,我了解到Cascade.None()应该可以工作,大多数人都有相反的问题,删除/更新/。。。不工作,所以我真的很困惑。

问题是,我在另一个地方(在
HasManyConvention.Apply
)设置了实例
Cascade.AllDeleteOrphan()
,优先级更高

附言:我不知道类似的帖子是否会被删除。对我来说,这似乎是一个问题,我在过去有更多的时间,但它是“我不知道我自己的代码…”的变体

class EmployeeOverride : IAutoMappingOverride<Employee>
{
    public void Override(FluentNHibernate.Automapping.AutoMapping<Employee> mapping)
    {
        mapping.HasMany(x => x.Subordinates).Cascade.None();
        mapping.HasOne(x => x.SupervisorBackRef).Cascade.None();
    }
}