相关疑难解决方法(0)

映射类别父ID自引用表结构到EF Core实体

数据库表:

图片

我尝试了这种方法将类别表映射到EF核心:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<Category>(entity =>
    {
        entity
            .HasMany(e => e.Children)
            .WithOne(e => e.Parent) 
            .HasForeignKey(e => e.ParentId);
    });
}
Run Code Online (Sandbox Code Playgroud)

实体:

[Table("Category"]
public class Category : EntityBase
{
    [DataType(DataType.Text), MaxLength(50)]
    public string Name { get; set; }

    public int? ParentId { get; set; }

    public int? Order { get; set; }

    [ForeignKey("ParentId")]
    public virtual Category Parent { get; set; }

    public virtual ICollection<Category> Children { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

然后在存储库中:

public override IEnumerable<Category> GetAll()
{ 
    IEnumerable<Category> …
Run Code Online (Sandbox Code Playgroud)

c# sql categories self-referencing-table entity-framework-core

8
推荐指数
1
解决办法
5194
查看次数