Al llamar a Max() en un IQueryable y no hay registros, obtengo la siguiente excepción.Entity Framework llamando a MAX en nulo en registros
La conversión al tipo de valor 'Int32' ha fallado porque el valor materializado es nulo. El parámetro genérico del tipo de resultado o la consulta deben usar un tipo que admite nulos.
var version = ctx.Entries
.Where(e => e.Competition.CompetitionId == storeCompetition.CompetitionId)
.Max(e => e.Version);
Ahora entiendo por qué sucede esto, mi pregunta es ¿cómo es la mejor manera de hacer esto si la tabla puede estar vacío. El siguiente código funciona y resuelve este problema, pero es muy feo ¿no existe el concepto MaxOrDefault()?
int? version = ctx.Entries
.Where(e => e.Competition.CompetitionId == storeCompetition.CompetitionId)
.Select(e => (int?)e.Version)
.Max();
¿Qué versión de EF está usted usando ? – jrista
Microsoft ADO.NET Entity Framework Feature Community Technology Preview 4 – bleevo