私は主に DetachedCriteria を使用します。これには、インスタンスを構築するための静的メソッド For があります。でも、IQueryOverの方が有利なようで、使いたいです。
IQueryOver のインスタンスを取得する通常の方法は Isession.Query です。ActiveRecord を使用して適切に取得したいのですが、方法を知っている人はいますか? ありがとう。
1203 次
2 に答える
3
First, QueryOver.Of<T> return an instance of QueryOver<T, T>, then you build conditions with QueryOver API.
After that, query.DetachedCriteria return the equivalent DetachedCriteria, which can be used with ActiveRecord gracefully.
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 は直接サポートされていません。issue trackerでアイテムを作成し、リポジトリをフォークして実装することをお勧めします。ActiveRecordLinqBaseの実装を調べることから始めますが、似ているはずです。しかし、別のクラスの代わりに、これを ActiveRecordBase に実装することができます。次に、ActiveRecordMediator でラップして、ActiveRecordBase を継承しないクラスでも使用できるようにします。
于 2011-04-23T15:58:26.300 に答える