У меня есть таблица User, у которой есть столбец идентификаторов. UserID
Какова правильная строка кода Linq to Entity, которая вернет мне максимум UserID
?
Я пытался:
using (MyDBEntities db = new MyDBEntities())
{
var User = db.Users.Last();
// or
var User = db.Users.Max();
return user.UserID;
}
но Last
и , Max
похоже, не поддерживается.
Есть идеи?
попробуй это
int intIdt = db.Users.Max(u => u.UserId);
Обновить:
Если записи нет, сгенерируйте исключение, используя вышеуказанный код, попробуйте это
int? intIdt = db.Users.Max(u => (int?)u.UserId);
источник
var max = db.Users.DefaultIfEmpty().Max(r => r == null ? 0 : r.ModelID);
когда в db нет записей, он вернет 0 без исключения.
источник
NisaPrieto
Users user = bd.Users.Where(u=> u.UserAge > 21).Max(u => u.UserID);
не будет работать, потому что MAX возвращает тот же тип переменной, что и поле, поэтому в данном случае это INT, а не объект User.
источник
В случае , если вы используете
async
иawait
функцию, она будет выглядеть следующим образом :User currentUser = await db.Users.OrderByDescending(u => u.UserId).FirstOrDefaultAsync();
источник
Лучший способ получить идентификатор добавленной вами сущности:
public int InsertEntity(Entity factor) { Db.Entities.Add(factor); Db.SaveChanges(); var id = factor.id; return id; }
источник