5

Come è possibile specificare una relazione sulla stessa tabella utilizzando Entity Framework?Relazione sulla stessa tabella con Entity Framework

mio tavolo 'Articoli' ha i seguenti campi: - Id (uniqueidentifier) ​​ - ThreadId (uniqueidentifier) ​​ - Creato (datetime) - Testo (nvarchar (max))

Il mio modello 'Voce' : - Id (Guid) - ThreadId (Guid) - Creato (DateTime) - Testo (stringa) - ChildItems (ICollection)

Come posso creare la relazione in modo che ChildItems detiene gli elementi con id = ThreadId?

+0

cosa si intende utilizzare Codice Primo approccio o altro? –

+0

Primo codice, mi dispiace – Kulvis

risposta

5

penso che il seguente testo farlo:

modelBuilder.Entity<Item>() 
        .HasOptional(c => c.ChildItems) 
        .WithMany() 
        .HasForeignKey(c => c.ThreadId); 
2

L'entità del lotto

public class Item 
{ 
    public Guid Id { get; set; } 
    public Guid ThreadId { get; set; } 
    public ICollection<Item> ChildItems { get; set; } 

    /* Other properties */ 
} 

E la configurazione fluente

modelBuilder.Entity<Item>() 
       .HasMany(i => i.ChildItems) 
       .WithOptional() 
       .HasForeignKey(i => i.ThreadId);