estoy utilizando LINQ ampliamente en mi proyecto, el rendimiento hasta el momento es bueno, sólo tengo una duda, si he utilizado LINQ algo como estométodo Count LINQ y rendimiento
var getData = objData.where(obj => obj.isDelete ==false)
if (getData != null && getData.Count() > 0)
foreach(xyz as obj in getdata.ToList())
{
//some operation
}
¿El getData.Count() y getdata.ToList() realiza dos recuperaciones diferentes en el objeto? O según el concepto de carga differ cuando se ejecuta getData.Count(), no se realiza ninguna operación para .ToList.
Si no es así, ¿debo eliminar la condición de conteo, mejorará el rendimiento?
Estoy utilizando Enterprise Library 5.0 acessor métodos para obtener datos de DB List lstpack = new List();
var accessor = _sqlDatabase.CreateSprocAccessor<PackageForClient>("PackageForClientApp", MapBuilder<PackageForClient>
.MapAllProperties()
.Build()
);
var Data = accessor.Execute(startdate, enddate,beinh);
if (Data != null) //&& Data.Count() > 0 //This has been removed as it is doing an extra fetch
lstpack = Data.ToList<PackageForClient>();
Ahora devolver la lista
¡Genial! gracias, aquí getData es una lista de objetos devueltos por conjunto de resultados de Enterprise Library 5.0, sorprendido de ver que ejecuta el Procedimiento almacenado dos veces, uno cuando llamamos al método Count de getData y otro cuando se usa ToList. – Deepesh
Agregué un código en mi pregunta solamente – Deepesh
@Deepesh: ¿Por qué estás sorprendido de ver eso? 'getData' no es una lista de objetos, es una * consulta *. Llamar a 'ToList' es lo que lo convierte en una lista de objetos. –