Estoy usando EF. Esta es mi consulta LINQ¿Qué pasa con LINQ to EF?
public List<Tuple<int, string>> GetList()
{
return (from c in DALContext.MST
select new Tuple<int, string>(c.CD, c.NAME)).ToList();
}
cuando llamo GetList() lanza una excepción: Solamente los constructores sin parámetros y inicializadores están soportados en LINQ a Entidades
En cambio, cuando vuelvo a escribir esta consulta:
List<Tuple<int, string>> lst = new List<Tuple<int, string>>();
var query= (from c in DALContext.MST
select new{c.CD, c.NAME});
foreach (var item in query)
{
lst.Add(new Tuple<int,string>(item.CD,item.NAME));
}
return lst;
Simplemente funciona bien. ¿Qué pasa con mi primera consulta?
¿Es 'AsEnumerable()' diferente de usar 'ToList()' o 'ToArray()'? – Despertar
@Despertar - 'ToList()' y 'ToArray()' recorren necesariamente los resultados de la consulta para construir la lista o matriz. En el ejemplo de arriba, si reemplaza 'AsEnumerable()' con 'ToList()', está repitiendo los resultados dos veces. Con 'AsEnumerable()' solo estás recorriendo una vez, porque 'AsEnumerable()' no consume la secuencia. –