Solución:
LastOrDefault () no es compatible con Linq To Entities. Por lo tanto, funcionará en una colección en la memoria, pero no cuando intente consultar una base de datos.
Esta es una forma eficiente de manejarlo:
var lastCompletedQuestion =
_db.CompletedQuestions.Where(q => q.UserId == currentUserId)
.OrderByDescending(q => q.QuestionNumber)
.FirstOrDefault()
;
Entity framework / linq2sql funciona convirtiendo su C # / IL compilado en SQL. Solo puede convertir métodos que conoce. El error le dice que LastOrDefault no es uno de esos.
Puede solucionar esto poniendo .ToList () antes de LastOrDefault, lo que lo aleja del convertidor sql a vanilla C # y obtiene la versión normal de trabajo de LastOrDefault. O puede cambiar el orden y usar FirstOrDefault, que puede traducir.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)