5

Jak mogę określić realtingship w tej samej tabeli przy użyciu Entity Framework?Relacje na tym samym stole z Entity Framework

moim stole 'Rzeczy' ma następujące pola: - Id (uniqueidentifier) ​​ - ThreadID (uniqueidentifier) ​​ - Utworzony (datetime) - Text (nvarchar (max))

Mój model 'Pozycja' : - Id (GUID) - ThreadID (GUID) - Utworzony (DateTime) - Text (string) - ChildItems (ICollection)

Jak mogę utworzyć relację tak że ChildItems posiada elementy z id = ThreadId?

+0

masz na myśli używając kodu Pierwsze podejście lub inny? –

+0

Kod Najpierw przepraszam – Kulvis

Odpowiedz

5

Myślę, że powinien to zrobić co następuje:

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

Podmiot Przedmiot

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

    /* Other properties */ 
} 

I biegle konfiguracja

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