我真的希望有人可以帮助解决这个问题,已经尝试了一天半的各种组合......
基本上我有一些分层数据存储在一个表中,通常的 parentID 映射到行 id 场景。我在域对象中建模了一个属性,该属性返回给定项目的祖先列表。这一切似乎都在查看日志(即它检索和水合正确的行:
CollectionLoadContext - 4 collections were found in result set for role: Domain.Keyword.Ancestors
CollectionLoadContext - 4 collections initialized for role: Domain.Keyword.Ancestors
但是:集合实际上从未被填充,单步执行我的代码 Ilist 不包含它应该包含的内容 - 只有一个实例(与当前记录相同)!??日志中没有关于无法映射返回的列的错误,只是似乎没有正确填充?我确定我错过了一些明显的东西 - 但只是看不到它......
我的映射中有这样的集合声明
<bag name="Ancestors" inverse="true"cascade="none" lazy="true" fetch="select" generic="true" >
<key column="KeywordID"/>
<one-to-many class="Domain.Keyword, BS.Core" />
<loader query-ref="CustomAncestorLoader" />
</bag>
...和一个名为 query 的自定义加载器,用于返回给定关键字的关键字祖先列表:
<sql-query name="CustomAncestorLoader">
<load-collection alias="Ancestors" role="Domain.Keyword.Ancestors"/>
SELECT s.KeywordID, s.kwdhier, s.Keyword, s.Notes, s.position , s.ParentKeywordId
From dbo.utKeywordBranch(:ParentID) k join Keywords s on k.KeywordId = s.[KeywordID] </sql-query>
我已经把头发扯掉了,因为我已经花了这么长时间了,所以任何帮助都将不胜感激!