我在执行 NHibernate 查询时遇到了一个奇怪的错误。我有一个IQueryOver<ExternalUser, ExternalUser>
过滤和转换类型的查询(使用 DistinctRootEntity,我猜这是导致问题的原因)。我创建这样的查询:
List<Guid> companyList = /* some guids */
Company company = null;
var query = _session.QueryOver<ExternalUser>()
.JoinAlias(x => x.Companies, () => company)
.Where(() => company.Id.IsIn(companyList))
.TransformUsing(Transformers.DistinctRootEntity);
当我执行时query.RowCountInt64()
,我得到 4。
当我执行时query.List()
,我得到了 3 个项目。
我也试过query.ToRowCountInt64Query().List<long>().Sum()
这也给了我4。
我也试过query.ToRowCountInt64Query().FutureValue<long>().Value
了,这也给了我 4。
任何想法如何解决这个问题?