Per filtrare i dati che vogliamo ottenere a monte della nostra richiesta potremo utilizzare il vecchio buon CAML.
Facendo finta di voler ottenere tutti i contatti (creati in questo post: http://bitvector.tostring.it/blog/post/popoliamo-la-nostra-lista-di-contatti-tramite-il-client-object-model-di-sharepoint-2010/) che hanno nel campo Company il valore Equus creeremo una query caml uguale alla seguente:
<View><Query> <Where> <Eq> <FieldRef Name='Company' /> <Value Type='Text'>EquusValue> Eq> Where> Query>View>Possiamo usare questa query per i nostri scopi in questa maniera:
string webUrl = "http://indirizzoMacchina"; using (ClientContext ctx = new ClientContext(webUrl)) { List list = ctx.Web.Lists.GetByTitle("MyContactsList"); CamlQuery query = new CamlQuery(); query.ViewXml = @"Facendo così riusciamo ad ottenere solamente gli item necessari alla nostra applicazione e miglioriamo le prestazioni del sistema."; ListItemCollection items = list.GetItems(query); ctx.Load(items, x => x.Include(i => i["FullName"], i => i["Company"], i => i["Email"])); ctx.ExecuteQuery(); foreach (var item in items) Console.WriteLine(item["FullName"].ToString() + "\t" + item["Company"].ToString() + "\t" + item["Email"].ToString()); } Console.ReadLine(); Equus
Enjoy
No comments:
Post a Comment