C# 如何获得NHibernate的预计财产?

C# 如何获得NHibernate的预计财产?,c#,nhibernate,nhibernate-criteria,C#,Nhibernate,Nhibernate Criteria,假设我正在使用NHibernate,并希望找到集合的一些聚合值。我有这样的想法: var crit = session.CreateCriteria<T>(); crit.Add(someRestrictions); crit.SetProjection( Projections.ProjectionList() .Add(Projections.Min(propertyName), "min" + propertyName) .Add(Pro

假设我正在使用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 = ???
var crit=session.CreateCriteria();
增加(一些限制);
临界集投影(
投影。投影列表()
.Add(Projections.Min(propertyName),“Min”+propertyName)
.Add(Projections.Max(propertyName),“Max”+propertyName)
);
var ur=crit.UniqueResult();
最小值=???
var max=???

如何获取
min
max
的值?

通常的方法是创建一些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>();
var result=crit.SetProjection(
投影。投影列表()
.Add(Projections.Min(propertyName),“MinProperty”)/“Min”+propertyName)
.Add(Projections.Max(propertyName),“MaxProperty”)/“Max”+propertyName)
)
.SetResultTransformer(Transformers.AliasToBean())
.UniqueResult();
它将返回一个
MyDto
,并键入对最小和最大属性的访问权限