NHibernate投影:如何将QueryOver投影到int列表中?

NHibernate投影:如何将QueryOver投影到int列表中?,nhibernate,queryover,nhibernate-projections,Nhibernate,Queryover,Nhibernate Projections,正在尝试将查询结果投影到整数列表中。你是怎么做到的?应该使用什么变压器。AliasToBean不工作,因为它需要setter var accessFeeYears = _session.QueryOver<AgreementAccessFee>() .JoinAlias(a => a.FeeType, () => agreementAccessFeeTypeAlias) .Wh

正在尝试将查询结果投影到整数列表中。你是怎么做到的?应该使用什么变压器。AliasToBean不工作,因为它需要setter

var accessFeeYears = _session.QueryOver<AgreementAccessFee>()
                        .JoinAlias(a => a.FeeType, () => agreementAccessFeeTypeAlias)
                        .Where(x => x.Agreement.Id == request.AgreementId
                                                             && agreementAccessFeeTypeAlias.Code ==AgreementAccessFeeTypeCode.FlatChargePerInsured)
                         .SelectList(list => list
                                        .Select(a => a.PolicyYear).WithAlias(() =>policyYear))
                         .TransformUsing(Transformers.??????)
                         .List<int>();
var accessfeeeyears=\u session.QueryOver()
.JoinAlias(a=>a.FeeType,()=>agreementAccessFeeTypeAlias)
.其中(x=>x.Agreement.Id==request.AgreementId
&&agreementAccessFeeTypeAlias.Code==AgreementAccessFeeTypeCode.FlatChargePerInsured)
.SelectList(list=>list
.Select(a=>a.PolicyYear).with别名(()=>PolicyYear))
.变压器使用(变压器)
.List();

这很简单,在查看了选项后,PassThrough看起来可以工作,它确实可以。

另一种方式:

_session.QueryOver<AgreementAccessFee>()
    .JoinAlias(a => a.FeeType, () => agreementAccessFeeTypeAlias)
    .Where(x => x.Agreement.Id == request.AgreementId
        && agreementAccessFeeTypeAlias.Code == AgreementAccessFeeTypeCode.FlatChargePerInsured)
    .SelectList(list => list
        .Select(a => a.PolicyYear))
    .List<int>();
\u session.QueryOver()
.JoinAlias(a=>a.FeeType,()=>agreementAccessFeeTypeAlias)
.其中(x=>x.Agreement.Id==request.AgreementId
&&agreementAccessFeeTypeAlias.Code==AgreementAccessFeeTypeCode.FlatChargePerInsured)
.SelectList(list=>list
.选择(a=>a.PolicyYear))
.List();
(一起使用
摆脱
转换)