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.