我正在使用QueryOver并急切地加载过滤后的集合,类似于以下内容:
Part partAlias=null;
Session.QueryOver<Car>().JoinQueryOver(x=>x.Parts,()=>partAlias)
.WhereRestrictionOn(()=>partAlias.Id).IsIn(partIds)
.List<Car>();
问题在于,当我引用生成的集合(.Parts)时,它会从数据库中获取并覆盖之前的内容。我正在使用Fluent Nhibernate进行配置。
答案 0 :(得分:0)
好的,我最终得到了一切。有几个不同的问题。其中一个包括其他关系,这些关系创造了笛卡尔积,导致集合成倍增加。另一个问题,更具体到我的问题,我通过添加连接类型JoinType.LeftOuterJoin
解决了这个问题。我在this thread找到了建议。默认是使用内部联接,但这不起作用。连接必须是左外连接。