Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 按模拟标准分组_Hibernate_Nhibernate - Fatal编程技术网

Hibernate 按模拟标准分组

Hibernate 按模拟标准分组,hibernate,nhibernate,Hibernate,Nhibernate,我使用NHibernate标准,它返回具有相同ID的对象。我如何在那里创建类似“groupby”的东西 public List GetByDateRangeAndUser(日期时间从,日期时间到,字符串用户, i收集(例外) { var criteria=NHibernateSession.CreateCriteria(typeof(ProducerRelation)); 添加标准(标准,从,到,例外); 标准。添加(Restrictions.Eq( String.Format(“{0}.{1}

我使用NHibernate标准,它返回具有相同ID的对象。我如何在那里创建类似“groupby”的东西

public List GetByDateRangeAndUser(日期时间从,日期时间到,字符串用户,
i收集(例外)
{
var criteria=NHibernateSession.CreateCriteria(typeof(ProducerRelation));
添加标准(标准,从,到,例外);
标准。添加(Restrictions.Eq(
String.Format(“{0}.{1}”),ProducerRelation.Properties.Order,
BackOffice.Core.Domains.Order.Properties.CreatedBy),用户);
将criteria.List()作为列表返回;
}
私有无效添加标准ByruteUnitDate(ICriteria标准,日期时间从,日期时间到,
i收集(例外)
{
crit.CreateAlias(ProducerRelation.Properties.Order,ProducerRelation.Properties.Order);
crit.CreateAlias(String.Format(“{0}.{1}”),
ProducerRelation.Properties.Order,
bModel.Order.Properties.RouteUnits),ProducerRelation.Properties.RouteUnit)
.Add(限制)(
格式(“{0}.{1}”,ProducerRelation.Properties.RouteUnit,RouteUnit.Properties.DtStart),
从,直到)
.Add(限制)。Not(
限制。In(ProducerRelation.Properties.Id,例外)
));
}

因为您的代码不可复制,我猜您可能需要在最后添加一个转换

尝试
.SetResultTransformer(新的distinctroentityResultTransformer())

    public List<ProducerRelation> GetByDateRangeAndUser(DateTime from, DateTime till, string user,
         ICollection exeptedIds)
    {
        var criteria = NHibernateSession.CreateCriteria(typeof(ProducerRelation));
        AddCriterionByRouteUnitDate(criteria, from, till, exeptedIds);
        criteria.Add(Restrictions.Eq(
                    String.Format("{0}.{1}", ProducerRelation.Properties.Order,
                        BackOffice.Core.Domains.Order.Properties.CreatedBy), user));
        return criteria.List<ProducerRelation>() as List<ProducerRelation>;
    }



    private void AddCriterionByRouteUnitDate(ICriteria crit, DateTime from, DateTime till,
        ICollection exeptedIds)
    {
        crit.CreateAlias(ProducerRelation.Properties.Order, ProducerRelation.Properties.Order);
        crit.CreateAlias(String.Format("{0}.{1}",
            ProducerRelation.Properties.Order,
            bModel.Order.Properties.RouteUnits), ProducerRelation.Properties.RouteUnit)
            .Add(Restrictions.Between(
                String.Format("{0}.{1}", ProducerRelation.Properties.RouteUnit, RouteUnit.Properties.DtStart),
                from, till))
            .Add(Restrictions.Not(
                Restrictions.In(ProducerRelation.Properties.Id, exeptedIds)
                ));
    }