En el contexto de C# en .Net 4.0, ¿hay algún objeto incorporado que implemente IQueryable<T>
?¿Qué tipos de instancias de implementación de IQueryable <T> están disponibles en .Net 4.0?
Respuesta
IQueryable
objetos son producidos por proveedores queryable (por ejemplo, LINQ to SQL, LINQ to Entities/Entity Framework, etc.). Prácticamente nada de lo que pueda crear instancias con new
en el .NET Framework básico implementa IQueryable.
IQueryable
es una interfaz diseñada para ser utilizada para crear proveedores consultable, que permiten que la biblioteca de LINQ a ser aprovechada en un almacén de datos externo mediante la construcción de un árbol de análisis sintáctico-expresión capaz. Por naturaleza, los Queryables requieren un contexto: información con respecto a qué es exactamente lo que está consultando. Usar new
para crear cualquier tipo de IQueryable, independientemente de si es posible, no te lleva muy lejos.
Dicho esto, cualquier IEnumerable
se puede convertir en IQueryable
utilizando el método de extensión AsQueryable()
. Esto crea un constructo diferente superficialmente similar, pero funcionalmente muy detrás de las escenas como cuando se usan métodos LINQ contra un objeto simple IEnumerable
. Esta es probablemente la fuente más abundante de consultas a las que tiene acceso sin configurar un proveedor de IQueryable real. Este cambio es muy útil para probar los algoritmos basados en LINQ ya que no necesita el almacén de datos real, solo una lista de datos en memoria que pueden imitarlo.
bien, su pregunta es un poco extraño ... pero creen que si nos fijamos en una interfaz en Reflector, que le dará una lista de los ejecutores en los ensamblados cargados.
Como descargo de responsabilidad no he utilizado Reflector ya que fue pago por jugar, así que podría estar equivocado.
EntityCollection hace, al igual que EnumerableQuery.
No es que creo que ninguno de estos te vaya a llevar a ninguna parte. Para ayudar, necesitamos saber lo que realmente está tratando de resolver. Si está escribiendo un proveedor de LINQ, debe leer esto: http://msdn.microsoft.com/en-us/library/bb546158.aspx.
Recomiendan escribir su propia implementación.
Gracias. Perdón por la confusión en la publicación inicial; No busco ayuda con mi código, solo estoy aprendiendo nuevos objetos C# para jugar. –
No veo que EntityCollection implemente IQueryable
- 1. ¿Qué tipos de bases de datos están disponibles en Android?
- 2. ¿Qué tipos de mensajes flash están disponibles en Rails?
- 3. .NET 4.0 Implementación de OutputCacheProvider
- 4. ¿Qué herramientas están disponibles para determinar qué ensamblados de .NET han cambiado desde la última compilación?
- 5. ¿Qué complementos de compilador scala están disponibles?
- 6. ¿Qué variables especiales están disponibles en la ventana de visualización de Visual Studio en .NET?
- 7. Implementación dinámica de una interfaz en .NET 4.0 (C#)
- 8. ¿Qué fuentes están disponibles en Android?
- 9. ¿Qué comandos de salida de consola están disponibles en Erlang?
- 10. ¿Qué partes de .NET no están disponibles en Monotouch para el desarrollo de iPhone?
- 11. Implementación de Lazy <T> para .NET 3.5
- 12. IQueryable para tipos anónimos
- 13. ¿Qué bibliotecas de voz están disponibles en Linux?
- 14. ¿Qué diferentes algoritmos de clasificación están disponibles en Java 6?
- 15. ¿Qué fuentes de entropía están disponibles en heroku?
- 16. ¿Qué informes están disponibles para svn?
- 17. ¿Qué complementos/utilidades están disponibles para TFS?
- 18. ¿Qué estructuras de datos de árbol Javascript están disponibles?
- 19. Qué herramientas de diseño de pantalla están disponibles
- 20. ¿Qué herramientas de registro de depuración están disponibles desde Javascript?
- 21. ¿Qué controladores MySQL están disponibles para node.js?
- 22. ¿Qué hacks de CSS puros específicos de Safari están disponibles?
- 23. moldeada IQueryable <EntityObject> a IQueryable <Specific>
- 24. ¿Qué clases de colección de subprocesos están disponibles en Silverlight 4?
- 25. Ruby AWS - Generar mediante programación lista de tipos de instancias de AWS disponibles
- 26. ¿Qué frameworks basados en actores están disponibles para Scala?
- 27. qué bases de datos nosql están disponibles para azul
- 28. ¿Qué plugins de vim están disponibles para Eclipse?
- 29. Windows Mobile - ¿Qué plataformas de scripting están disponibles?
- 30. ¿Qué editores modales están disponibles aparte de vi/vim?
Gracias. Su escenario descrito (prueba de unidad) es más o menos lo que estoy haciendo. ¿Conoces alguna buena documentación sobre las diferencias de construcción que mencionas? Tengo curiosidad por saber qué tan diferente es el objeto cuando se utiliza el método de extensión 'AsQueryable()'. –
Es MUY diferente. En lugar de una cadena de objetos Iterator producidos por los métodos IEnumerable Linq, los métodos IQueryable agregan nodos a un árbol de Expresión. Este árbol no es, por sí mismo, ejecutable como un código como un iterador. Pero, es serializable, analizable, etc. por lo que puede determinar la estructura de la consulta y convertirla en una consulta en otro idioma como SQL. – KeithS
Mire esta pregunta y todos los enlaces relacionados: http://stackoverflow.com/questions/252785/what-is-the-difference-between-iqueryablet-and-ienumerablet – KeithS