从Function中获取NHibernate QueryOver .SelectList(x)

Kin*_*tes 4 c# nhibernate fluent-nhibernate

有没有办法从函数中获取成员列表,可以传递给SelectList()?

所以不要这样做

var dtos = repository.QueryOver<MicrofilmExportProcessed>()
                    .SelectList(list => list
                        .Select(x => x.Member1).WithAlias(() => dto.Member1)
                        .Select(x => x.Member2).WithAlias(() => dto.Member2)
                        .Select(x => x.Member3).WithAlias(() => dto.Member3))
                    .List<MicrofilmExportProcessed>();
Run Code Online (Sandbox Code Playgroud)

做这样的事情:

var dtos = repository.QueryOver<MicrofilmExportProcessed>()
                    .SelectList(getMembersFromFunc())
                    .List<MicrofilmExportProcessed>();
Run Code Online (Sandbox Code Playgroud)

我尝试创建方法,返回与SelectList的输入参数相同的类型,但它仍然告诉我输入类型无效.不知道我错过了什么.

Rip*_*ppo 8

就像是

Func<QueryOverProjectionBuilder<InvoiceDto>, QueryOverProjectionBuilder<InvoiceDto>> GetList()
{
    InvoiceDto dto = null;
    return list => list.Select(w => w.Client).WithAlias(() => dto.Client);
}
Run Code Online (Sandbox Code Playgroud)

并称之为

return Session.QueryOver<InvoiceDto>()
    .SelectList(GetList())
    .TransformUsing(Transformers.AliasToBean<InvoiceDto>())
    .List<InvoiceDto>();
Run Code Online (Sandbox Code Playgroud)