Cómo establecer un conjunto de resultados LINQ como fuente de datos en una vista de cuadrícula en ASP.NET

Tengo una aplicación ASP.NET Web Forms. Me gustaría mover gradualmente la aplicación de Web Forms a MVC. El primer paso que estoy dando es mover todas las consultas del código subyacente a una capa de Repositorio.

Para hacerlo, creo un proyecto separado (biblioteca de clase) donde coloco un Marco de entidad LINQ a Clase de repositorio y Interfaz de repositorio. A continuación, ASP.NET Web Forms hace referencia a este proyecto.

Los métodos expuestos por la interfaz siempre devuelven un IQueryable<T> objeto (además de los que devuelven valores escalares que no son interesantes para este problema).

¿Cómo puedo enviar el conjunto de resultados a un Vista en cuadrícula? Supongamos que implemento en la clase Repository:

IQueryable<T> GetAll();

¿Cómo puedo decirle a GridView que mi fuente de datos es GetAll()? ¿Es correcto este código o debo especificar en algún lugar que el DataSource es un LinqDataSourceLinqDataSource?

 IMyRepository dataRepository = new MyRepository();
 myGridView.DataSource = MyRepository.GetAll().ToList();
 myGridView.DataBind();

Lanzo el IQueryable<T> ToList() porque espero que el DataSource sea IEnumerable<T>

preguntado el 09 de marzo de 12 a las 14:03

1 Respuestas

No es necesario especificar el tipo de DataSource.

No estoy seguro, ¿dónde especifica el tipo de objeto genérico T antes de vincular su lista?

respondido 09 mar '12, 15:03

Gracias, es solo una convención. Para los métodos comunes a todas mis entidades de Repositorio, uso T.Para los específicos de una entidad, especifico la clase: CiccioMiami

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.