Mam użytkownika tabeli, który ma kolumnę tożsamości UserID
, teraz jaka jest poprawna linia kodu Linq to Entity, która zwróci mi maksimum UserID
?
Próbowałem:
using (MyDBEntities db = new MyDBEntities())
{
var User = db.Users.Last();
// or
var User = db.Users.Max();
return user.UserID;
}
ale Last
i Max
nie wydają się być obsługiwane.
Jakieś pomysły?
c#
linq
entity-framework
linq-to-entities
Promień
źródło
źródło
Spróbuj tego
int intIdt = db.Users.Max(u => u.UserId);
Aktualizacja:
Jeśli nie ma rekordu, wygeneruj wyjątek za pomocą powyższego kodu, spróbuj tego
int? intIdt = db.Users.Max(u => (int?)u.UserId);
źródło
var max = db.Users.DefaultIfEmpty().Max(r => r == null ? 0 : r.ModelID);
gdy nie ma żadnych rekordów w db, zwróci 0 bez wyjątku.
źródło
NisaPrieto
Users user = bd.Users.Where(u=> u.UserAge > 21).Max(u => u.UserID);
nie zadziała, ponieważ MAX zwraca ten sam typ zmiennej, jaką jest pole, w tym przypadku jest to INT, a nie obiekt użytkownika.
źródło
W przypadku korzystania z funkcji
async
iawait
wyglądałoby to następująco:User currentUser = await db.Users.OrderByDescending(u => u.UserId).FirstOrDefaultAsync();
źródło
Najlepszy sposób na uzyskanie identyfikatora dodanej jednostki wygląda tak:
public int InsertEntity(Entity factor) { Db.Entities.Add(factor); Db.SaveChanges(); var id = factor.id; return id; }
źródło