2009-07-11 6 views
6

Ich spiele gerade mit SubSonic 3.0 und es sieht sehr einfach aus (außer dass ich mich immer noch zwischen SimpleRepository und ActiveRecord entscheiden muss, aber das ist eine andere Geschichte).Beziehungen und Lazy Loading in SubSonic 3.0

Da die Dokumentation jedoch ein wenig spärlich ist, bin ich nicht sicher, ob es Fremdbeziehungen und Lazy-Loading unterstützt. Im Grunde habe ich eine Klasse Posting:

public class Posting { 
    [SubSonicPrimaryKey] 
    public Guid InternalId { get; set; } 
    public string Title { get; set; } 
    public string Body { get; set; } 
    public DateTime? PostingDate { get; set; } 
    public List<Comment> Comments { get; set; } 
} 

und eine Klasse Kommentar:

public class Comment 
{ 
    public string Body { get; set; } 
} 

Wie Sie sehen, Posting eine Liste von Kommentaren. Kann ich SubSonic irgendwie sagen, dass diese beiden verwandt sind? Das heißt, dass ich automatisch alle Kommentare speichern kann, wenn ich den Beitrag speichere? Und noch wichtiger, wenn ich ein Posting lade, möchte ich, dass die Liste der Kommentare zuerst leer ist und irgendwann sagen "Okay, bitte füllen Sie es jetzt".

Ich weiß, dass ich das in Code manuell verwalten kann, aber ich möchte nur wissen, ob SubSonic das tun kann, bevor ich die manuelle Arbeit mache.

Antwort

4

Sparse? Hast du sie schon gelesen?

ActiveRecord kann Ihre Beziehungen basierend auf FKs (so können die Linq Templates) bestimmen und IQueryable verwenden. So erhalten Sie das Beste aus beiden Welten - sie sind da, wenn Sie sie brauchen.

Wenn Sie Simple Repo verwenden, geschieht dies nicht und es ist alles manuell.

+0

Hey Rob ... Aber sollte es eine CommentID mit aktiver Datensatzlösung geben, die Sie vorschlagen (um eine tatsächliche FK in Ihrer Klasse zu haben) oder ist es möglich, eine Eigenschaft des Typs Kommentar für die Beziehung zu verwenden? –

+0

Hallo, ich habe den "Docs" Abschnitt auf SubSonic angeschaut, der http://subsonicproject.com/docs/Using_ActiveRecord hat - Vielleicht war ich nicht klar genug: Kann ActiveRecord mein Schema für mich erstellen? Oder erstelle ich es manuell und dann verwendet AR automatisch den FK? –

+1

Sie erstellen es manuell und dann wird SubSonic das Objekt automatisch generieren und das FK –

3

Es gibt eine einfache Option zum Verwalten von Fremdschlüsseln, auch wenn Sie den Simple Repo verwenden. Check out this post für die Details.