5

Làm cách nào tôi có thể chỉ định một realtionship trên cùng một bảng bằng cách sử dụng Entity Framework?Mối quan hệ trên cùng một bảng với Khung thực thể

My bảng 'Mặt hàng' có các lĩnh vực sau: - Id (uniqueidentifier) ​​ - threadid (uniqueidentifier) ​​ - Tạo (datetime) - Text (nvarchar (max))

mô hình của tôi 'hàng' : - Id (Guid) - threadid (Guid) - tạo (DateTime) - Text (string) - ChildItems (ICollection)

Làm thế nào tôi có thể tạo ra các mối quan hệ để ChildItems giữ mục có Id = ThreadId?

+0

Bạn có nghĩa là sử dụng phương pháp mã đầu tiên hay khác? –

+0

Code Đầu tiên, xin lỗi – Kulvis

Trả lời

5

Tôi nghĩ rằng sau đây sẽ làm điều đó:

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

Item tổ chức

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

    /* Other properties */ 
} 

Và cấu hình thông thạo

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