Como faço para obter o ID max com Linq para entidades?

votos
62

Eu tenho um usuário tabela que tem uma coluna de identidade UserID, agora o que é o Linq correta para a linha de Entidade de código que iria me ao máximo voltar UserID?

Eu tentei:

using (MyDBEntities db = new MyDBEntities())
{
    var User = db.Users.Last();
    // or
    var User = db.Users.Max();

    return user.UserID;
}

mas Laste Maxnão parecem ser apoiadas.

Alguma ideia?

Publicado 25/11/2008 em 01:09
fonte usuário
Em outras línguas...                            


6 respostas

votos
125

tente com

db.Users.OrderByDescending(u => u.UserId).FirstOrDefault()
Respondeu 25/11/2008 em 01:11
fonte usuário

votos
86

tente este

int intIdt = db.Users.Max(u => u.UserId);

Atualizar:

Se nenhum registro, em seguida, gerar exceção usando o código acima tentar este

int? intIdt = db.Users.Max(u => (int?)u.UserId);
Respondeu 27/03/2009 em 15:06
fonte usuário

votos
10

NisaPrieto

Users user = bd.Users.Where(u=> u.UserAge > 21).Max(u => u.UserID); 

não vai funcionar porque MAX retorna o mesmo tipo de variável que o campo é tão neste caso é um INT não um objeto usuário.

Respondeu 18/08/2010 em 17:38
fonte usuário

votos
7
var max = db.Users.DefaultIfEmpty().Max(r => r == null ? 0 : r.ModelID);

quando não há registros no db ele retornaria 0 com excepção.

Respondeu 15/05/2015 em 11:08
fonte usuário

votos
1

No caso, se você estiver usando o asynce awaitfuncionalidade, seria a seguinte:

User currentUser = await db.Users.OrderByDescending(u => u.UserId).FirstOrDefaultAsync();
Respondeu 12/12/2016 em 10:13
fonte usuário

votos
0

A melhor maneira de obter o ID da entidade que você adicionou é assim:

public int InsertEntity(Entity factor)
{
    Db.Entities.Add(factor);
    Db.SaveChanges();
    var id = factor.id;
    return id;
}
Respondeu 10/04/2017 em 19:40
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more