与实体框架相同的表上的关系

时间:2012-05-23 10:08:10

标签: c# entity-framework entity-framework-4 entity-relationship

如何使用Entity Framework在同一个表上指定实际情况?

我的表'项'包含以下字段: - Id(uniqueidentifier) - ThreadId(uniqueidentifier) - 创建(日期时间) - 文本(nvarchar(max))

我的模特'项目':   - Id(Guid)   - ThreadId(Guid)   - 创建(日期时间)   - 文字(字符串)   - ChildItems(Icollection)

如何创建关系以便ChildItems保存Id = ThreadId?

的项目

2 个答案:

答案 0 :(得分:5)

我认为以下内容应该这样做:

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

答案 1 :(得分: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);