gpt4 book ai didi

c# - Linq计数麻烦

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

我有两个表:

tblBadge
-------
ID
Name

tblBadgeUsers
-------
BadgeID
UserID

一个用户可以拥有多个徽章,所有关系都在 SQL 数据库中正确设置。

我正在尝试返回用户拥有的所有徽章的列表,以及这些徽章的总数。这是我所能得到的,我很困惑。我想返回 tblBadge 数据以及显示该徽章奖励总数的额外列。

这行不通,但这是我的尝试:

var q = db.tblBadgeUsers
.Where(c => c.UserID == UserID)
.GroupBy(c => c.BadgeID)
.Select(c => new { BadgeCount = c.Count(), Record = c.tblBadge });

最佳答案

考虑到一个徽章只有真的有一个徽章 ID 和一个用户,听起来您只需要获取徽章 ID 和该徽章的使用次数 - 这意味着只需获取该组的 key :

var q = db.tblBadgeUsers
.Where(c => c.UserID == UserID)
.GroupBy(c => c.BadgeID)
.Select(c => new { BadgeCount = c.Count(), BadgeId = c.Key });

如果每个徽章上有更多信息,您可能想要这样做:

var q = db.tblBadgeUsers
.Where(c => c.UserID == UserID)
.GroupBy(c => c.BadgeID)
.Select(c => new { BadgeCount = c.Count(), BadgeId = c.Key, Badges = c });

然后你可以这样做:

foreach (var badgeType in q)
{
Console.WriteLine("{0}: {1}", badgeType.BadgeId, badgeType.BadgeCount);
foreach (var badge in q.Badges)
{
// Deal with the badge information
}
}

关于c# - Linq计数麻烦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7799416/

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