LINQ :: Select().Max() considerando retorno que pode ser nulo
Para quem desenvolve sistemas e trabalha com LINQ e banco de dados, pode existir uma situação em que seja necessário fazer o que utilizando SQL convencional seria um SELECT MAX(campo), sendo que normalmente campo uma chave primária (particularmente eu trabalho com PKs identity ou sequences). O objetivo é simples, encontrar o maior valor para um determinado campo. A sugestão utilizando LINQ é algo como: decimal consultaId = ContextoBD .Query< TipoDominio >() .Select(x => ( decimal ?)x.Id) .Max() ?? 0; var maiorId = (consultaId + 1); return ( int )maiorId; Mas então a pergunta, "qual o detalhe do código, não seria óbvio só utilizar o método Select() e então Max() diretamente para uma variável Int?". Só que isso não funciona em todos os casos! O detalhe no código acima está em utilizar um tipo decimal como retorno com um cast nuláv...