3

ユーザーのMAXLevelId値を選択してから、その値を変数に割り当てようとしています。

プレーンSQLでは、同等のものは次のとおりです。

SELECT        MAX(LevelID) AS MaxLevel
FROM            Character
WHERE        (UserId = 'John')


//Check User existing Characters max level per user

int UserLevelID = 0;

var userQuery = (from o in db.Characters
where o.UserId == UserID
      select o);

UserLevelID = userQuery.Max(LevelID);

ここに問題があります。levelIDの最大値を抽出する方法がわかりません

4

3 に答える 3

9

すべてを1つのクエリで実行できます。

var userLevelId = db.Characters.Where(o => o.UserID == UserID)
                               .Max(o => o.LevelID);

クエリ式から変更しました。これは、より多くの手間がかかるためです。実際に読みやすくなるクエリ式を使用し、拡張メソッドを使用すると、より読みやすい単純なソリューションが必要になります。

于 2012-07-06T16:13:57.587 に答える
4

どうですか:

var theLevel = db.Characters.Where(z => z.UserId == UserID).Max(z => z.LevelID);
于 2012-07-06T16:15:08.283 に答える
0

var max = db.Characters.Where(o => o.UserID == UserID).Max(o => o == null ? 0 : o.LevelID);

db にレコードがない場合、例外なく 0 が返されます。

于 2015-05-15T11:12:23.270 に答える