我有一个Node对象,它有一个Parent属性,它是另一个Node,还有一个_children字段支持只读的Children属性,它也是节点的集合。
属性处理关联关系,内存中对象测试就好了。但是,当我从存储库(我的测试中的内存中SQLite数据库)中检索它们时,任何Node的子节点都会出于某种原因包含它自己。有什么想法吗?
我的映射主要是使用AutoMap完成的,但我已经覆盖了以下内容:
mapping.References(x => x.Parent);
mapping.HasMany(x => x.Children).Inverse().Access.LowerCaseField(Prefix.Underscore);
我也尝试过没有Inverse()调用。
答案 0 :(得分:3)
知道了。问题是我需要告诉子集合什么Id字段要挂入外键。
我将该映射更改为:
mapping.HasMany(m => m.Children)
.Inverse()
.KeyColumn("ParentId")
.Access.CamelCaseField(Prefix.Underscore)
.Cascade.All()