Как получить максимальный идентификатор с помощью Linq to Entity?
у меня есть таблица пользователей, которая имеет столбец идентификаторов UserID
, теперь какова правильная строка кода Linq to Entity, которая вернет мне max UserID
?
Я пробовал:
using (MyDBEntities db = new MyDBEntities())
{
var User = db.Users.Last();
// or
var User = db.Users.Max();
return user.UserID;
}
но Last
и Max
кажется, не поддерживается.
какие идеи?
6 ответов:
попробуй такое
int intIdt = db.Users.Max(u => u.UserId);
обновление:
Если нет записи, то создать исключение, используя приведенный выше код попробуйте это
int? intIdt = db.Users.Max(u => (int?)u.UserId);
NisaPrieto
Users user = bd.Users.Where(u=> u.UserAge > 21).Max(u => u.UserID);
не будет работать, потому что MAX возвращает тот же тип переменной, что и поле, поэтому в этом случае это INT, а не объект пользователя.
var max = db.Users.DefaultIfEmpty().Max(r => r == null ? 0 : r.ModelID);
когда в БД нет записей, он вернет 0 без исключения.