C# 如何正确映射&;使用fluent nhibernate更新自引用实体

C# 如何正确映射&;使用fluent nhibernate更新自引用实体,c#,fluent-nhibernate,C#,Fluent Nhibernate,我正在尝试创建一个实体,该实体当前拥有同一实体的列表,该链接存在于另一个表中 然后将其作为API公开。 我能够获取数据,但每次尝试更新集合时,都会导致一个错误:cascade=all delete orphan的集合不再被所属实体实例引用 公共类MyEntity { 公共虚拟整数Id{get;set;} 公共虚拟ISet链接身份{get;set;} } 我正在使用fluent nhibernate自动映射,因此,覆盖默认映射 var fluentConfigurationCampaign=Fl

我正在尝试创建一个实体,该实体当前拥有同一实体的列表,该链接存在于另一个表中

然后将其作为API公开。 我能够获取数据,但每次尝试更新集合时,都会导致一个错误:
cascade=all delete orphan的集合不再被所属实体实例引用

公共类MyEntity
{
公共虚拟整数Id{get;set;}
公共虚拟ISet链接身份{get;set;}
}
我正在使用fluent nhibernate自动映射,因此,覆盖默认映射

var fluentConfigurationCampaign=Fluently.Configure()
.CurrentSessionContext(“我的会话”)
.数据库(
MySQLConfiguration.Standard.ConnectionString(MyConnectionString)
)
.Mappings(m=>m.AutoMappings.Add(AutoMap.AssemblyOf(cfg))
.Conventions.Setup(c=>c.Add())
.Override(map=>map.hasmanytomy(i=>i.LinkedEntities)
.ParentKeyColumn(“EntitySelf”)
.ChildKeyColumn(“实体其他”)
.Table(“链接”).Cascade.AllDeleteOrphan()
映射建议的链接表仅包含3个属性

自动生成的ID

自链接到实体表的foreignKey实体

链接到实体表的foreignKey EntityOther

当更新一个实体(通过控制器)时,我得到一个EntityContract,它通过automapper映射到一个实体

然后我会:

\u session.Merge(myEntityFromController);
var oldEntity=\u session.Get(myEntityFromController.Id);
_更新(旧实体);
_session.Flush();
这对我所有的其他实体都很好。 但是,尝试更改LinkedEntity列表时(通过删除、添加或甚至不触摸LinkedEntity列表),我遇到了错误:
cascade=all delete orphan的集合不再被所属实体实例引用

任何帮助都将不胜感激,因为我被困在这个问题上!
谢谢。

我的问题似乎与映射的
部分有关。
我以为它会引用我的
链接的
表,但相反,它似乎试图对链接的
MyEntity
执行操作,因此产生了我的错误

删除它使一切工作无需其他调整