gpt4 book ai didi

c# - 如何计算嵌套类别中项目的总数(自引用类别表)

转载 作者:太空狗 更新时间:2023-10-30 01:17:52 25 4
gpt4 key购买 nike

<分区>

我正在使用 C#、ASP.Net、 Entity Framework 、LINQ、Microsoft SQLServer

我有两张 table

tblCategories
Id
Name
ParentId (parentId is the Id of another category in this table that is the parent of this one)

tblQuestion
Id
CategoryId
Etc.

假设我的类别表包含

Programming  (Id 1 ParentId null)     - directly contains 10 questions
C# (Id 25 ParentId 1) – directly contains 5 questions
Interview Questions (Id 99 ParentId 25) - directly contains 2 questions

Variables (Id 100 ParentId 25) – 直接包含1个问题 网络(Id 2 Parent Id null)

我想知道每个类别(包括其子类别)存在多少个问题。
换句话说,在这个例子中,18 个问题在编程中,8 个在 C# 中

是否可以在查询中执行此操作,或者我是否需要对每个类别调用某种迭代循环?例如 db.categories.Where(something).count()

这是我的类别类:

public class Category
{

[Key]
public int Id { get; set; }

[StringLength(40)]
public string Name { get; set; }

public int? ParentId { get; set; }

[JsonIgnore]
public virtual ICollection<Category> Children { get; set; }

[JsonIgnore]
public virtual Category Parent { get; set; }

[JsonIgnore]
public virtual ICollection<Question> Questions { get; set; }

}

然后在 OnModelCreating 中:

modelBuilder.Entity<Category>()
.HasMany(x => x.Children)
.WithOptional(y => y.Parent)
.HasForeignKey(z => z.ParentId)
.WillCascadeOnDelete(false);

StackOverflow 上有几个类似的问题,像这样:Help with generating a report from data in a parent-children model还有这个linq aggregated nested count但我找不到一个足够好的匹配,我能理解

澄清一下,我想知道子类别中的问题数量,而不是子类别的数量。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com