2009-04-21 12 views
0

Es könnte sehr gut sein, dass ich gerade die korrekte Umgangssprache in diesem Raum vermisse, aber ich bin auf der Suche nach einer bestimmten Funktion in SubSonic. In NetTiers wurde es als "DeepLoad" bezeichnet. Ein tiefer Ladevorgang läuft zur Datenbank und holt viele Objekte (dh lade dieses OrderDetail und alle seine LineItems) in einen Datenbankaufruf.Subsonic Deeploads: Wird das unterstützt?

Auch hier möchte ich zum Datenspeicher laufen, sobald ich ein potenziell dichtes Objektdiagramm oder verwandte Elemente erstellt habe, die vom Datenspeicher aufgefüllt wurden.

Wie mache ich das in SubSonic und wie heißt es in SubSonic?

Antwort

2

du in SubSonic 3.0 tun kann (noch nicht veröffentlicht, aber es fast geschafft ...) IQueryable mit träges Laden mit:

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

, wenn Sie nicht auf 3 sind (was erfordert. Netz 3.5) Sie können dies mit Active-Datensatz tun, wie Paul erwähnt - aber es wird zwei Anrufe tätigen.

1

Es wird nicht geladen, und DeepSave in ActiveRecord ruft nur Save auf. Hier ist ein Beispiel mit Northwind Order-Klasse-Fremdschlüssel-Methode.

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