framework - max linq to sql c#
¿Cómo obtengo la identificación máxima con Linq to Entity? (6)
En caso de que use la función async
y await
, sería de la siguiente manera:
User currentUser = await db.Users.OrderByDescending(u => u.UserId).FirstOrDefaultAsync();
Tengo un usuario de tabla que tiene una UserID
usuario de columna de identidad, ¿cuál es la línea de código Linq to Entity correcta que me devolvería el UserID
máximo?
He intentado:
using (MyDBEntities db = new MyDBEntities())
{
var User = db.Users.Last();
// or
var User = db.Users.Max();
return user.UserID;
}
pero Last
y Max
no parecen ser compatibles.
¿Algunas ideas?
La mejor forma de obtener el ID de la entidad que agregó es la siguiente:
public int InsertEntity(Entity factor)
{
Db.Entities.Add(factor);
Db.SaveChanges();
var id = factor.id;
return id;
}
NisaPrieto
Users user = bd.Users.Where(u=> u.UserAge > 21).Max(u => u.UserID);
no funcionará porque MAX devuelve el mismo tipo de variable que el campo, por lo que en este caso es un INT, no un objeto de Usuario.
Prueba con
db.Users.OrderByDescending(u => u.UserId).FirstOrDefault()
prueba esto
int intIdt = db.Users.Max(u => u.UserId);
Actualizar:
Si no hay registro, genere una excepción usando el código anterior, intente esto
int? intIdt = db.Users.Max(u => (int?)u.UserId);
var max = db.Users.DefaultIfEmpty().Max(r => r == null ? 0 : r.ModelID);
cuando no hay registros en db, devolvería 0 sin excepción.