2009-04-21 10 views
0

私はちょうどこの空間で正しい発音を見逃している可能性がありますが、私はSubSonicの特定の機能を探しています。 NetTiersでは「DeepLo​​ad」と呼ばれていました。ディープ・ロードがデータベースに実行され、1つのデータベース・コールで多くのオブジェクトをフェッチします(つまり、このOrderDetailおよびそのすべてのLineItemをフェッチします)。亜音速のダウンロード:これはサポートされていますか?

また、データストアによって生成された、潜在的に密度の高いオブジェクトグラフや関連アイテムを構築した後、データストアを実行したいとします。

SubSonicでこれを行うにはどうすればいいですか?それはSubSonicでどのように呼び出されますか?

答えて

2

あなたは遅延ロードでのIQueryableを使用して(まだほとんどがリリースしたが、ない...)亜音速の3.0でこれを行うことができます。

var db=new NorthwindDB(); 
var order=db.Orders.Where(x=>.xID==20).SingleOrDefault(); 
Assert.Equal(3,order.OrderDetails.Count()); 

あなたが必要とする3(上いないのであれば。 net 3.5)パウロが言及しているように、アクティブなレコードでこれを行うことができますが、2回コールします。

1

ActiveRecordのDeepSaveは保存を呼び出すだけです。 Northwind Orderクラスの外部キーメソッドの例を次に示します。

[Test] 
public void SelectOrderDetails() 
{ 
    Order order = new Order(10250); 
    OrderDetailCollection details = order.OrderDetails(); 
    Assert.IsTrue(details.Count == 3); 
}