LINQ的数麻烦
我有两个表:LINQ的数麻烦
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和该徽章的使用计数 - 这意味着刚开该组的关键:
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
}
}
以上是 LINQ的数麻烦 的全部内容, 来源链接: utcz.com/qa/259607.html