4

クエリを自己完結型で再利用可能にするために、NH2 でこれを行う傾向がありました。

public class FeaturedCarFinder : DetachedCriteria
{
    public FeaturedCarFinder(int maxResults) : base(typeof(Car))
    {
        Add(Restrictions.Eq("IsFeatured", true));
        SetMaxResults(maxResults);
        SetProjection(BuildProjections());
        SetResultTransformer(typeof(CarViewModelMessage));
    }
}

NH3 に移行したので QueryOver を使用したいのですが、QueryOver を使用して上記を行う方法がわかりません。

4

1 に答える 1

6

NH ユーザー リストの誰かが答えてくれました。

public class FeaturedCarFinder : QueryOver<Car, Car> 
{ 
    public FeaturedCarFinder(int maxResults) 
    { 
        Where(c => c.IsFeatured); 
        Take(maxResults); 
        BuildProjections(); 
        TransformUsing(Transformers.AliasToBean(typeof(CarViewModelMessage))); 
    } 
    private void BuildProjections() 
    { 
        SelectList(l => 
            l.Select(c => c.IsFeatured) 
            //... 
            ); 
    } 
} 

基本クラスとして DetachedCriteria を使用する場合と非常に似ていますが、基本クラスとして QueryOver だけでなく、QueryOver (つまり、2 つの型引数バージョン) を使用することに注意してください。

于 2011-01-12T17:59:37.697 に答える