【问题标题】:How to get projected property in NHibernate?如何在 NHibernate 中获得投影属性?
【发布时间】:2015-12-07 19:36:33
【问题描述】:

假设我正在使用 NHibernate 并希望找到一组聚合值。我有这样的事情:

var crit = session.CreateCriteria<T>();
crit.Add(someRestrictions);
crit.SetProjection(
    Projections.ProjectionList()
        .Add(Projections.Min(propertyName), "min" + propertyName)
        .Add(Projections.Max(propertyName), "max" + propertyName)
);
var ur = crit.UniqueResult();
var min = ???
var max = ???

如何获得minmax 的值?

【问题讨论】:

    标签: c# nhibernate nhibernate-criteria


    【解决方案1】:

    通常的方法是创建一些 DTO:

    public class MyDto
    {
        public virtual int MinProperty { get; set; }
        public virtual int MaxProperty { get; set; }
    }
    

    这可能是结果查询:

    var result = crit.SetProjection(
        Projections.ProjectionList()
            .Add(Projections.Min(propertyName), "MinProperty") // "min" + propertyName)
            .Add(Projections.Max(propertyName), "MaxProperty") // "max" + propertyName)
        )
        .SetResultTransformer(Transformers.AliasToBean<MyDto>())
        .UniqueResult<MyDto>();
    

    这将返回一个 MyDto 并具有对 min 和 max 属性的类型化访问权限

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-29
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多