5

如何使用实体框架在同一张表上指定一个关系?

我的表“项目”具有以下字段: - Id(唯一标识符) - ThreadId(唯一标识符) - 创建(日期时间) - 文本(nvarchar(max))

我的模型“项目”:-Id(Guid)-ThreadId(Guid)-创建(DateTime)-文本(字符串)-ChildItems(Icollection)

如何创建关系,以便 ChildItems 保存 Id = ThreadId 的项目?

4

2 回答 2

5

我认为以下应该做到这一点:

modelBuilder.Entity<Item>()
                    .HasOptional(c => c.ChildItems)
                    .WithMany()
                    .HasForeignKey(c => c.ThreadId);
于 2012-05-23T10:24:37.110 回答
2

项目实体

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);
于 2012-05-23T10:58:13.780 回答