c# entity-framework listview webforms model-binding

c# - Asp.net: ¿Qué mejor enlace ListView por enlace de modelo o por DataSource?



entity-framework webforms (1)

Construyo un formulario web asp.net Webforms con Entity Framework, encuentro Two Way para enlazar el ListView para: 1- Por DataSource Como este

void Bind() { var search = db.Search.Where(k => k.RequestId == RequestId); lstSearch.DataSource = search.ToList(); lstSearch.DataBind(); }

2- Mediante el uso de SelectMethod Like this

public IQueryable<Search> BindOrders() { var search = db.Search.Where(k => k.RequestId == 12).AsQueryable(); return search; }

cuál es el mejor y por qué?


SelectMethod y muchas otras funciones para vincular datos a controles web se introdujeron en .NET Framework 4.5 como un enlace de datos fuertemente tipado. Esas características le permiten manejar los datos que crea / elimina / modifica / filtra desde / a los controles web de una manera limpia y mantenible.

Por otro lado, el modo DataSource es la forma antigua de vincular datos a controles web.

Te aconsejo que leas este blog que detalla el tema (ScottGu''s):

El nuevo soporte de Model Binding en ASP.NET vNext es una buena evolución del sistema de enlace de datos existente de Web Forms. Toma prestados conceptos y características del sistema de vinculación de modelos en ASP.NET MVC (lo verá más en publicaciones posteriores), y hace que trabajar con paradigmas de acceso a datos enfocados en el código sea más simple y más flexible.

Además, verifique las ventajas de usar IQueryable<Object> :

La principal diferencia, desde la perspectiva de un usuario, es que, cuando usa IQueryable (con un proveedor que admite cosas correctamente), puede ahorrar muchos recursos.