0

我主要使用 DetachedCriteria,它有一个静态方法 For 来构造一个实例。不过好像IQueryOver更优惠,我想用一下。
获取 IQueryOver 实例的正常方法是 Isession.Query,我想用 ActiveRecord 优雅地获取它,有人知道方法吗?谢谢。

4

2 回答 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 回答