gpt4 book ai didi

c# - 帮助处理两个表的 linq 查询

转载 作者:行者123 更新时间:2023-11-30 18:43:34 25 4
gpt4 key购买 nike

我想像这样显示类别和子类别:

类别 1
子类别 1
子类别 2
子类别 3

第二类
子类别 5
子类别 6
子类别 7

换句话说,对于每个类别,在下面显示属于每个类别的子类别。

我的两张表是这样的:
类别-
类别ID
姓名

子类别-
子类别ID
子类别名称
类别ID
我有一个从类别到子类别的一对多外键。

这是我进入代码的地方,它显示了每个类别的所有子类别。

public void displayLinqCategory()
{
MyDataContext dbm = new MyDataContext();

var q = from category in dbm.Categories
join subCat in dbm.SubCategories
on category.CategoryID equals subCat.CategoryID
select new { category.Name, subCat.SubCategoryName };

resultSpan.InnerHtml += "<table>";
foreach (var c in q)
{
resultSpan.InnerHtml += "<tr><td>" + c.Name + "</td></tr>";
foreach (var s in q)
{
resultSpan.InnerHtml += "<tr><td>&nbsp;&nbsp;&nbsp;" + s.SubCategoryName + "</td></td>";
}

}
resultSpan.InnerHtml += "</table>";
}

最佳答案

如果您添加一个 into 子句,它会将相关类别分组到一个集合中,您可以轻松地对其进行迭代。

方法如下:

using (var dbm = new MyDataContext())
{
var query = dbm.Categories
join s in dbm.SubCategories on c.CategoryID equals s.CategoryID
//group the related subcategories into a collection
into subCollection
select new { Category = c, SubCategories = subCollection };

foreach (var result in query)
{
//use result.Category here...

//now go through the subcategories for this category
foreach (var sub in result.Subcategories)
{
//use sub here...
}
}
}

关于c# - 帮助处理两个表的 linq 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4308591/

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