3

内部選択からの2つの値を結合するEFのLinqクエリを作成しようとしています。その下には、トリックを実行するSQLクエリがありますが、Linqで実行しようとすると、さらにトリッキーになります。

POCOオブジェクトを使用しており、匿名型ではなくリストを返すクエリが必要です。これはLinqtoEFで可能ですか?

SELECTs1。*
FROM[統計]s1
インナージョイン
((
    SELECT MAX(Cre​​ateDate)as createdate
    FROM[統計]
    GROUP BY UserId
)s2
ON s1.UserId=s2。[UserId]およびs1.CreateDate=s2.createdate
s1.Balancedescによる注文
4

1 に答える 1

2

これは、WhereまたはJoinを使用して行うことができます。

from s1 in Statistics
join s2 in (from s in Statistics group s by s.UserId into g
select new { UserId = g.Key, CreateDate = g.Max (s => s.CreateDate) })
on new { s1.UserId, s1.CreateDate } equals new { s2.UserId, s2.CreateDate }
orderby s1.Balance descending
select s1;

または、

from s1 in Statistics
from s2 in (from s in Statistics group s by s.UserId into g
select new { UserId = g.Key, CreateDate = g.Max (s => s.CreateDate) })
where s1.UserId == s2.UserId && s1.CreateDate == s2.CreateDate
orderby s1.Balance descending
select s1;
于 2012-04-16T17:57:06.017 に答える