- Los operadores de consulta estándar son los métodos que forman el modelo de Language-Integrated Query (LINQ). La mayoría de estos métodos funciona en secuencias, donde una secuencia es un objeto cuyo tipo implementa la interfaz IEnumerable<(Of <(T>)>)o la interfaz IQueryable<(Of <(T>)>). Los operadores de consulta estándar proporcionan capacidades de consulta que incluyen filtrado, proyección, agregación, ordenación y otras.
Hay dos conjuntos de operadores de consulta estándar de LINQ, uno que funciona sobre objetos de tipo IEnumerable<(Of <(T>)>) y otro que funciona sobre objetos de tipo IQueryable<(Of <(T>)>). Los métodos que constituyen cada conjunto son miembros estáticos de las clases Enumerable y Queryable, respectivamente. Se definen como métodos de extensión del tipo sobre el que operan. Esto significa que se pueden llamar utilizando sintaxis del método estático o sintaxis del método de instancia.
Además, varios métodos de operador de consulta estándar funcionan con tipos distintos de los que se basan en IEnumerable<(Of <(T>)>) o IQueryable<(Of <(T>)>). El tipo Enumerable define dos de esos métodos, que operan sobre objetos de tipo IEnumerable. Estos métodos, Cast<(Of <(TResult>)>)(IEnumerable) y OfType<(Of <(TResult>)>)(IEnumerable), permiten que una colección no parametrizada, o no genérica, pueda ser consultada en el modelo de LINQ. Esto lo consiguen creando una colección de objetos con establecimiento inflexible de tipos. La clase Queryable define dos métodos similares, Cast<(Of <(TResult>)>)(IQueryable) y OfType<(Of <(TResult>)>)(IQueryable), que operan sobre objetos de tipo Queryable.
Los operadores de consulta estándar difieren en el momento de su ejecución, dependiendo de si devuelven un valor singleton o una secuencia de valores. Los métodos que devuelven un valor singleton (por ejemplo, Average y Sum) se ejecutan inmediatamente. Los métodos que devuelven una secuencia retrasan la ejecución de la consulta y devuelven un objeto enumerable.
En el caso de los métodos que operan sobre colecciones en memoria, es decir, aquellos métodos que extienden IEnumerable<(Of <(T>)>), el objeto enumerable devuelto captura los argumentos que se pasaron al método. Cuando se enumera ese objeto, se emplea la lógica del operador de consulta y se devuelven los resultados de la consulta.
En contraste, los métodos que extienden IQueryable<(Of <(T>)>) no implementan cualquier comportamiento de consulta, sino que generan un árbol de expresión que representa la consulta que se va a realizar. El procesamiento de la consulta es administrado por el objeto IQueryable<(Of <(T>)>) del origen. - permiten buscar datos facilmente en secuencia en las bases de datos
- http://msdn.microsoft.com/es-es/library/bb397896.aspx
jueves, 12 de febrero de 2009
oOperadoOres adicioOnales de coOnsulta
Suscribirse a:
Enviar comentarios (Atom)

No hay comentarios:
Publicar un comentario