Saltar al contenido

LINQ to Entities no reconoce el método: LastOrDefault

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)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *