1

次の2つの表があります。

-Groups-
Id
Name

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

グループ内のIsActiveメンバーの数が最も多いものから最も少ないものへと並べ替えるLINQクエリを作成するにはどうすればよいですか?

クエリは次のようになります

//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です。クエリは非常に似ていますが、この2つのアプローチの違いに注意する必要があります。linqのletキーワードはintoキーワードよりも優れていますか?

于 2012-06-25T07:23:12.930 に答える