Another way:
_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>();
(get rid of the TransformUsing
all together)