tutorial from español ejemplos c# linq data-structures parameter-passing

c# - from - ¿Cómo puedo devolver un tipo anónimo desde un método?



linq introduction (4)

Un método genérico debería darte intellisense:

public class MyType {Key{get;set;} Value{get;set}} public IQueryable<T> GetSomeData<T>() where T : MyType, new() { return from a in db.MyTable where a.MyValue == "A" select new T {Key=a.Key,Value=a.MyValue}; }

Tengo una consulta Linq a la que quiero llamar desde varios lugares:

var myData = from a in db.MyTable where a.MyValue == "A" select new { a.Key, a.MyValue };

¿Cómo puedo crear un método, poner este código en él y luego llamarlo?

public ??? GetSomeData() { // my Linq query }


Tanto IQueryable como IEnumerable funcionan. Pero desea utilizar una versión específica de tipo, IQueryable < T > o IEnumerable < T > .

Entonces querrás crear un tipo para guardar los datos.

var myData = from a in db.MyTable where a.MyValue == "A" select new MyType { Key = a.Key, Value = a.MyValue };


Si quieres regresar, necesitas un tipo.

En lugar de var , declare usando IEnumerable<> y devuelva esa variable. Iterar a través de él realmente ejecuta la consulta.


IQueryable

Entonces su declaración de método se vería

public IQueryable GetSomeData()