2011-08-04 14 views
1

私はId、BattleId、UserId、DateTimeの4つのプロパティを含むエンティティBattleUserを持っています。私はすべてのユーザーのBattleUserエンティティを最後に照会する必要があります。だから私はこのような何かに来た:最大値を持つグループ化されたエンティティをクエリする

context.GroupBy(bu => bu.UserId, bu => bu). 
Select(gbu => new { UserId = gbu.Key, DateTime = gbu.Max(bu => bu.DateTime) }). 
ToList(); 

私は各ユーザーの最後のDateTimeを取得します。これらの値を使用することによって、私は最後のBattleUserエンティティを別のクエリですべてのユーザに取得できます。 1つのクエリでタスクを解決するために初期クエリを変更する方法はありますか?

答えて

1

あなたはこのクエリを試すことができます。

context.GroupBy(bu => bu.UserId, bu => bu) 
    .Select(gbu => new 
    { 
     UserId = gbu.Key, 
     LastBattleUser = gbu.OrderByDescending(bu => bu.DateTime).FirstOrDefault() 
    }) 
    .ToList(); 
関連する問題