【问题标题】:NHibernate Reusable QueryOverNHibernate 可重用 QueryOver
【发布时间】:2011-06-07 19:51:43
【问题描述】:

为了让我的查询保持独立并可能重复使用,我倾向于在 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 完成上述操作?

【问题讨论】:

    标签: nhibernate queryover


    【解决方案1】:

    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 作为基类。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多