5

如何使用实体框架在同一张桌子上指定一个房子?与实体框架在同一张桌子上的关系

我的表 '项目' 具有以下字段: - ID(唯一标识符) - 的ThreadId(唯一标识符) - 创建(日期时间) - 文本(为nvarchar(MAX))

我的模型 '项目' : - ID(GUID) - 的ThreadId(GUID) - 创建(日期时间) - 文本(字符串) - ChildItems(ICollection的)

如何建立的关系,使ChildItems持有编号为的项目=的ThreadId?

+0

你的意思是使用代码优先的方法或其他? –

+0

代码首先,对不起 – Kulvis

回答

5

我认为有以下应做到:

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

Item实体

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

    /* Other properties */ 
} 

而流畅的配置

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