实体框架:Fluent API。我应该如何映射这种关系?

时间:2012-09-27 14:20:45

标签: entity-framework ef-code-first

我的表格如下:

create table Entities(
    EntityId bigint not null identity(1, 1),
    Name nvarchar(64) not null,
    ParentEntityId bigint null
)
alter table Entities add constraint PK primary key (EntityId)
alter table Entities add constraint FK foreign key (ParentEntityId) references Entities(EntityId)

我的模型看起来像这样:

public class Entity
{
    [Required]
    public virtual long EntityId { get; set; }

    [Required]
    public virtual string Name { get; set; }

    public virtual long? ParentEntityId { get; set; }

    public virtual Entity ParentEntity { get; set; }
}

我正在尝试使用流畅的api映射映射ParentEntity属性,但我无法使其工作。我该怎么办? 提前谢谢!

编辑:固定代码差异。

1 个答案:

答案 0 :(得分:2)

这种流利适合你:

        modelBuilder.Entity<Entity>()
            .HasOptional(e => e.ParentEntity)
            .WithMany()
            .HasForeignKey(e => e.ParentEntityId );

为我创建了这个数据库:

enter image description here