J'ai un utilisateur de table qui a une colonne d'identité UserID
, quelle est maintenant la ligne de code correcte Linq vers entité qui me renverrait la valeur maximale UserID
?
J'ai essayé:
using (MyDBEntities db = new MyDBEntities())
{
var User = db.Users.Last();
// or
var User = db.Users.Max();
return user.UserID;
}
mais Last
et Max
ne semblent pas être pris en charge.
Des idées?
Faire ça comme ça
db.Users.OrderByDescending(u => u.UserId).FirstOrDefault();
essaye ça
int intIdt = db.Users.Max(u => u.UserId);
Mettre à jour:
Si aucun enregistrement ne génère une exception en utilisant le code ci-dessus, essayez ceci
int? intIdt = db.Users.Max(u => (int?)u.UserId);
NisaPrieto
Users user = bd.Users.Where(u=> u.UserAge > 21).Max(u => u.UserID);
ne fonctionnera pas car MAX renvoie le même type de variable que le champ. Il s'agit donc d'un objet INT et non d'un utilisateur.
var max = db.Users.DefaultIfEmpty().Max(r => r == null ? 0 : r.ModelID);
lorsqu'il n'y a pas d'enregistrements dans la base de données, il renvoie 0 sans exception.
Si vous utilisez les fonctions async
et await
, ce serait comme suit:
User currentUser = await db.Users.OrderByDescending(u => u.UserId).FirstOrDefaultAsync();
Le meilleur moyen d'obtenir l'identifiant de l'entité que vous avez ajoutée est le suivant:
public int InsertEntity(Entity factor)
{
Db.Entities.Add(factor);
Db.SaveChanges();
var id = factor.id;
return id;
}