我想爲用戶選擇MAX LevelId值,然後將該值分配給一個變量。在實體中選擇最大值
在普通的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
如何將值分配給UserLevelID(變量)。它只是UserLevelID = userQuery – MataHari 2012-07-06 16:16:22
這個查詢的問題是聚合函數需要非空序列...並且你不能保證Where擴展方法將返回一個非空序列,所以前一個句子在執行。 LinQToEntities提供了一個「DefaultIfEmpty」擴展方法,對此非常有用:Where(...)。DefaultIfEmpty(...)。Max(...) – Luis 2016-04-11 22:20:09
@Luis:如果這是所需的行爲,那麼是的。目前還不清楚在沒有結果的情況下OP究竟需要什麼。 (他們似乎很滿意這個答案...) – 2016-04-12 05:53:55