Hace un tiempo atrás realice una implementación de un “proveedor” del motor “Windows Search” para LinQ. El objetivo fue mostrar la versatilidad y facilidad de extender esta nueva característica a diversas fuentes de datos. Para este propósito realizamos un pequeño proyecto que implementa la interface IQueriable con el objetivo de extender la funcionalidad de LinQ a fuentes de datos de Windows Search.
A continuación veremos algunos ejemplos de uso:
Uso del Select
SystemIndex<SystemSearch> systemIndex ;
var result = (from SystemSearch t in systemIndex
select new { t.ItemName, t.Author,
t.Shell, t.Kind, t.Language });
foreach (var item in result){
TestContext.WriteLine(item.ItemName);
}
Uso del Where
SystemIndex<SystemSearch> systemIndex ;
var result = (from SystemSearch t in systemIndex
where t.Kind == new string [] {"document"} ||
t.Kind == new string[] { "folder" }
select new { t.ItemName, t.Author, t.Kind,
t.Language });
foreach (var item in result){
TestContext.WriteLine(item.ItemName);
}
Uso del “Order By”
SystemIndex<SystemSearch> systemIndex ;
var result = (from SystemSearch t in systemIndex
orderby t.Language
select new { t.ItemName, t.Author,
t.Kind, t.Language });
foreach (var item in result){
TestContext.WriteLine(item.ItemName);
}
Más sobre este proyecto incluido el código fuente puede encontrarlo aqui:http://www.codeplex.com/SystemSearchToLinQ
Espero les guste!
Hola, mi nombre es Mario Rodríguez Mier y actualmente me desempeño como arquitecto de software, pertenezco a la división de consultoría de Microsoft Iberia.
Mediante este blog pretendo escribir comentarios, artículos y ejemplos que pueden ser de utilidad para ustedes sobre temas que me tocan de cerca y que tengo que resolver en mi trabajo diario, permitiendome compartir con ustedes las soluciones que hemos dado a los problemas resueltos.
Espero que este blog les sea de utilidad y que puedan encontrar aquí alguna de las respuestas que seguro está buscando.