大家好。关于 Fluent 语法的快速问题。我原以为我已经失败了,但我遇到了一个奇怪的失败。基本上,我有一种分层结构,我正在尝试保留它,并且这一切似乎都有效,除非我使用 db 进行实际的集成测试。
我有一个 Node 对象,它有一个 Parent 属性,它是另一个 Node,还有一个 _children 字段支持只读 Children 属性,它也是 Node 的集合。
属性处理关联关系,并且内存中的对象测试得很好。但是,当我从存储库(我的测试中的内存中 SQLite 数据库)中检索它们时,出于某种原因,任何节点的子节点都包含自身。有任何想法吗?
我的映射主要是使用 AutoMap 完成的,但我已经覆盖了以下内容:
mapping.References(x => x.Parent);
mapping.HasMany(x => x.Children).Inverse().Access.LowerCaseField(Prefix.Underscore);
我也试过没有 Inverse() 调用。
最佳答案
知道了。问题是我需要告诉 child 集合什么 Id 字段要 Hook 到外键。
我将该映射更改为如下所示:
mapping.HasMany(m => m.Children)
.Inverse()
.KeyColumn("ParentId")
.Access.CamelCaseField(Prefix.Underscore)
.Cascade.All()
关于nhibernate - 流畅的NHibernate分层数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1403397/