我主要使用 DetachedCriteria,它有一个静态方法 For 来构造一个实例。不过好像IQueryOver更优惠,我想用一下。
获取 IQueryOver 实例的正常方法是 Isession.Query,我想用 ActiveRecord 优雅地获取它,有人知道方法吗?谢谢。
问问题
1203 次
2 回答
3
首先,QueryOver.Of<T> 返回一个 QueryOver<T, T> 的实例,然后您使用 QueryOver API 构建条件。
之后,query.DetachedCriteria 返回等效的 DetachedCriteria,可以优雅地与 ActiveRecord 一起使用。
var query = QueryOver.Of<PaidProduct>()
.Where(paid =>
paid.Account.OrderNumber == orderNumber
&& paid.ProductDelivery.Product == product)
.OrderBy(paid=>paid.ProductDelivery.DeliveredDate).Desc;
return ActiveRecordMediator<PaidProduct>.FindAll(query.DetachedCriteria);
于 2011-04-25T14:18:05.450 回答
1
据我所知,QueryOver 没有直接的支持。我鼓励您在问题跟踪器中创建一个项目,然后分叉存储库并实施它。我将从查看ActiveRecordLinqBase的实现开始,它应该是相似的。但是,您可以在 ActiveRecordBase 中实现它,而不是一个单独的类。然后将它包装在 ActiveRecordMediator 中,这样它也可以在不继承 ActiveRecordBase 的类中使用。
于 2011-04-23T15:58:26.300 回答