2009-07-11 11 views
6

Attualmente sto giocando con SubSonic 3.0 al momento, e sembra davvero semplice (tranne che devo ancora decidere tra SimpleRepository e ActiveRecord, ma questa è un'altra storia).Relazioni e caricamento lento in SubSonic 3.0

Tuttavia, poiché la documentazione è un po 'scarsa, non sono sicuro che supporti le relazioni esterne e il caricamento lento. In sostanza, ho una classe della pubblicazione:

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; } 
} 

e una classe Commento:

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

Come si vede, distacco ha un elenco di commenti. Posso in qualche modo dire a SubSonic che questi due sono correlati? Cioè che posso salvare automaticamente tutti i commenti quando salvi la posta? E ancora più importante, quando carico un post, vorrei che all'inizio la lista dei commenti fosse vuota, e ad un certo punto dì "Okay, per favore compila subito".

So che posso gestirlo manualmente in Codice, ma mi piacerebbe sapere se SubSonic può farlo prima di eseguire il lavoro manuale.

risposta

4

Sparse? Li hai già letti?

ActiveRecord può determinare le relazioni basate su FK (così come i modelli Linq) e utilizzerà IQueryable. Quindi ottieni il meglio da entrambi i mondi: sono lì se ne hai bisogno.

Se si utilizza Simple Repo - no - questo non accade ed è tutto manuale.

+0

Ehi Rob ... Ma dovrebbe esserci un CommentID con la soluzione di registrazione attiva che suggerisci (di avere un FK effettivo nella tua classe) o è possibile usare una proprietà di tipo Commento per la relazione? –

+0

Ciao, ho guardato la sezione "Docs" su SubSonic, che ha http://subsonicproject.com/docs/Using_ActiveRecord - Forse non ero abbastanza chiaro: ActiveRecord può creare il mio schema per me? O lo creo manualmente e quindi AR utilizzerà automaicamente l'FK? –

+1

Lo si crea manualmente e SubSonic genererà automaticamente l'oggetto e utilizzerà FK –

3

Esiste una semplice opzione per la gestione di chiavi esterne, anche se si sta utilizzando Simple Repo. Controlla this post per i dettagli.