将投影添加到连接

时间:2012-11-06 12:54:49

标签: nhibernate icriteria nhibernate-projections

如何在此代码中添加投影?我正在尝试根据创建或上次更新的日期对结果进行排序。

    var c = new Conjunction();
    c.Add(Restrictions.Where<InstructionTask>(x => x.IsOpen == _setDefaultStatusIfNotFound(status)));

//添加此投影时出错:

    if (string.IsNullOrEmpty(sort) || sort.Equals("created", StringComparison.OrdinalIgnoreCase))
        c.Add(Projections.Property<InstructionTask>(x => x.DateCreated));

我将Conjuction传递给另一种处理任务检索的方法,即var tasks = GetCollaboratedTasks(c);

2 个答案:

答案 0 :(得分:0)

连接只是一组将被AND运算在一起的滤波器。它与投影或排序无关。您需要将其粘贴在DetachedCriteria vs Criteria中。

答案 1 :(得分:0)

要按属性DateCreated对结果进行排序,请使用:

criteria.AddOrder(Order.Asc(Projections.Property<InstructionTask>(x => x.DateCreated));

正如奥斯卡所说,连词只能用于应用过滤器。