当前位置: 首页 > 编程语言 > C#

渴望在NHibernate中加载儿童和儿童collections品分享

时间:2023-04-11 01:37:55 C#

C#学习教程:在NHibernate中预加载子项和子集合我的领域模型如下:classGrandParent{intID{get;set;}IListParents{get;设置;}}父类{IList子类{get;set;}}classChild{}加载特定的GrandParent。此Linq-to-NH查询创建正确的SQL并按预期加载祖父母:(该示例假设祖父母有2个父母,每个父母有2个孩子-总共有4个孩子)。varlinq=session.Linq();linq.Expand("父母");linq.Expand("父母.孩子");linq.QueryOptions.RegisterCustomAction(c=>c.SetResultTransformer(newDistinctRootEntityResultTransformer()));vargrandparent=(selectgfromsession.Linq()whereg.ID==1selectg).ToList();断言(祖父母。计数==1);//作品断言(祖父母.Parents.Count==2);//失败-计数=4!grandparent.Parents集合包含4个项目,其中2个是重复项。似乎DistinctRootEntityResultTransformer只适用于1层深度的集合,因此根据每个父项有多少个子项,可以复制Parents集合。是否可以让NH只包含不同的Parent对象?太感谢了。如果您的映射设置为FetchType.Join,请尝试将其更改为FetchType.Select。以上就是C#学习教程:迫不及待的在NHibernate中加载所有的儿童和儿童收藏分享的内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处: