nhibernate - 流畅的NHibernate分层数据

标签 nhibernate orm mapping fluent

大家好。关于 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/

相关文章:

NHibernate 多对多效率低下?

c# - NHibernate 和 AutoMapper 不能正常运行 : "a different object with the same identifier value was already"

c# - NHibernate - 从 sql 函数返回复杂对象

grails - 在Grails中找不到表 “XXX”

javascript - 为什么我的带功能箭头的 map() 不起作用?

Hibernate:我可以使用 XML 和自定义生成器覆盖标识符生成器吗?

asp.net-mvc - NHibernate:我如何 XmlSerialize 一个 ISet<T>?

nhibernate - 使用 NHibernate 和 Codesmith 生成 ORM

javascript - Node.js - 使用 'async' 和 'await' 进行后续 ORM

CakePHP 3 - 访问查询对象的参数