2011-06-21 15 views
0

リンゴと車のように、アクティブなレコードがデータベースに1回だけ移動するような、異なるテーブルを照会したいと思います。擬似コードで無関係のテーブルから1つのバッチでエンティティを照会する方法

例:

var q1 = new Query("select * form apple"); 
var q2 = new Query("select * from car"); 

var batchQuery = new BatchQuery(q1,q2); 
var result = BatchQuery.Execute(); //only one trip to the database 

var apples = result[0] as IEnumerable<Apple>; 
var cars = result[1] as IEnumerable<Car>; 

私はActiveRecordMultiQueryを試してみましたが、すべてのクエリが同じテーブルを照会するが必要です。

答えて

0

私はこれを行う方法があるとは思わない。

ここで最適化して少し外に出てしまっているようですが、2つの別々のクエリを作成する際にアプリケーションに目立った違いがありますか?あなたの時間は、代わりにN+1 selectのクエリをあなたのアプリケーションのどこかで探していたほうがよいでしょう。

の追加クエリのコストが実際にはの場合、データベースサーバーまたはその接続に問題がある可能性があります。

関連する問題