2012-04-15 8 views
4

SelectList()に渡すことができる関数からメンバのリストを取得する方法はありますか?NHibernate QueryOverを取得する.SelectList(x)から関数

var dtos = repository.QueryOver<MicrofilmExportProcessed>() 
        .SelectList(getMembersFromFunc()) 
        .List<MicrofilmExportProcessed>(); 

は私が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>(); 

行う何かをするの入力タイプが無効です。私は何が欠けているか分からない。

答えて

8

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

ような何かと

return Session.QueryOver<InvoiceDto>() 
    .SelectList(GetList()) 
    .TransformUsing(Transformers.AliasToBean<InvoiceDto>()) 
    .List<InvoiceDto>(); 
のようにそれを呼び出します
関連する問題