gpt4 book ai didi

NHibernate 可重用 QueryOver

转载 作者:行者123 更新时间:2023-12-04 18:21:29 26 4
gpt4 key购买 nike

为了保持我的查询独立并可能重用,我倾向于在 NH2 中这样做:

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

我想使用 QueryOver 现在我已经转移到 NH3,但我不确定如何使用 QueryOver 完成上述操作?

最佳答案

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

关于NHibernate 可重用 QueryOver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4668999/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com