在查询中使用order by,conditional projection和SetFirstResult()时,我收到此错误:
此SqlParameterCollection的索引4无效,Count = 4
根据我的经验,当您将一个字段映射到两个属性时,通常会发生此错误,如here所示。但在这种情况下不是这种情况,查询工作正常,直到我将一个大于0的值传递给SetFirstResult()。
与Nhiberbate一起登录的This bug似乎非常类似,但它在2年前修复过。
有关如何进行的任何建议?以下是代码示例:
var query = Session.CreateCriteria<KeepItem>(KeepAlias)
.CreateAlias("Resource", ResourceAlias)
.CreateAlias("Memory", MemoryAlias, JoinType.LeftOuterJoin);
// other code
query.AddOrder
(
Order.Asc
(
Projections.Conditional
(
Restrictions.IsNull(MemoryAlias + ".MinDate"),
Projections.Conditional
(
Restrictions.IsNull(ResourceAlias + ".MinDate"),
Projections.Constant(DateTime.MaxValue),
Projections.Property(ResourceAlias + ".MinDate")
),
Projections.Property(MemoryAlias + ".MinDate")
)
)
);
//other code
query.SetFirstResult(skip);
query.SetMaxResults(take);
return query.List<KeepItem>();