2012-07-10 23 views
19

Recibo un error cuando se utiliza el siguiente código¿Cómo resolver este error en C#?

var v1 = from P in db1.QuranWordsNews where P.Aye == perId select P; 
var vv = v1.LastOrDefault(); // The error occurs here 

El mensaje:

LINQ a Entidades no reconoce el método método 'TashihQuran.QuranWordsNew LastOrDefaultQuranWordsNew' , y esto método no puede traducirse en una expresión de tienda.

+0

posible duplicado de [Error, método no admitido por LINQ to Entities] (http://stackoverflow.com/questions/2170141/error-method-not-supported-by-linq-to-entities) – sloth

+0

Posible duplicado de [LINQ To Entities no reconoce el método Last. ¿En serio?] (Http://stackoverflow.com/questions/7293639/linq-to-entities-does-not-recognize-the-method-last-really) –

Respuesta

36

Supongo que todavía está trabajando en IQueriable. Trate lugar

var vv = v1.ToList().LastOrDefault(); 

o, más elegante

var vv = v1.AsEnumerable().LastOrDefault(); 
+0

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ayúdenme !! –

45

Tal vez la mejor respuesta está aquí:

var vv = v1.OrderByDescending(rec => rec.Id).FirstOrDefault(); 

obtener todos los registros de la base de datos para utilizar sólo el último registro no es buena.

+1

De acuerdo con su declaración, pero en el caso de OP, ¿ya v1 no contiene "todos los registros" de la base de datos? – gitsitgo

Cuestiones relacionadas