1

我有以下两个表:

-Groups-
Id
Name

-Members-
Id
GroupId (Group.Id is related to Member.GroupId)
Name
IsActive (bit)

如何编写一个 LINQ 查询,该查询将按组中 IsActive 成员的数量从高到低排序?

查询看起来像这样

//pseudo code
    from grp in database.Groups
    orderby Count(grp.Members.where(m=>m.IsActive == true)) descending
    select grp
4

1 回答 1

3

您可以为此使用let 子句。结果,您将获得以下信息:

from grp in database.Groups
let activeCount = grp.Members.Where(m=>m.IsActive == true).Count()
order by activeCount descending
select grp

实现所需排序的另一种方法是使用select ... into. 查询将非常相似,但您应该注意这两种方法之间的区别:linq 的 let 关键字是否优于其 into 关键字?

于 2012-06-25T07:23:12.930 回答