2

大家好。关于流利语法的快速问题。我原以为我失败了,但我遇到了一个奇怪的失败。基本上,我有一种层次结构,我试图坚持下去,而且这一切似乎都有效,除非我用 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() 调用。

4

1 回答 1

3

知道了。问题是我需要告诉孩子集合要为外键挂钩的 Id 字段。

我将该映射更改为如下所示:

mapping.HasMany(m => m.Children)
  .Inverse()
  .KeyColumn("ParentId")
  .Access.CamelCaseField(Prefix.Underscore)
  .Cascade.All()
于 2009-09-10T21:21:48.623 回答