在EF核心中获取所有嵌套的子类别

时间:2019-02-21 08:35:49

标签: asp.net sql-server entity-framework

我有两个表:类别表

public class Category
{
    public int Id {get; set;}
    public string Title { get; set; }
    public int? ParentCategoryId { get; set; }

    [ForeignKey("ParentCategoryId")]
    public Category ParentCategory { get; set; }
}

和发布表格:

public class Post
{
    public int Id {get; set;}
    public string Title { get; set; }
    public int CategoryId { get; set; }

    [ForeignKey("CategoryId")]
    public Category Category { get; set; }
}

我可以在类别表中具有任意级别的嵌套。例如,车辆->自行车->运动自行车...

如何按类别搜索帖子并加载与该类别或任何级别的嵌套子类别相关的所有帖子? 目前,我的代码仅适用于固定级别的嵌套。

以下是PostRepository文件中的代码

    public async Task<IEnumerable<Post>> List(PostFilter postFilter)
    {
        var query = _dbContext.Post.AsQueryable();

        if (postFilter.SearchCategoryId > 0){
            query = query.Where(p => p.Category == postFilter.SearchCategoryId);
            query = query.Where(p => p.Category.ParentCategoryId == postFilter.SearchCategoryId);
        }

        return await query.Include(p => p.Category).ToListAsync();
    }

0 个答案:

没有答案