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
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 });
Uso del “Order By”
var result = (from SystemSearch t in systemIndex orderby t.Language select new { t.ItemName, t.Author, t.Kind, t.Language });
Más sobre este proyecto incluido el código fuente puede encontrarlo aqui:http://www.codeplex.com/SystemSearchToLinQ
Espero les guste!