使用Client OM查询列表时,如何动态生成/指定要加载的项目字段列表?

可以使用CAML查询中的标记来做到这一点,但这会加载其他不需要的字段,从而使有效负载更大。看到这里:http://blogs.technet.com/b/speschka/archive/2009/11/01/using-the-sharepoint-2010-client-object-model-part-3.aspx

这是即时通讯使用的测试代码:

    ClientContext clientContext = new ClientContext("http://myserver/sites/mysite");
Web site = clientContext.Web;

List list = clientContext.Web.Lists.GetByTitle("MyList");
CamlQuery camlQuery = new CamlQuery();
camlQuery.ViewXml = "<View Scope='RecursiveAll'><RowLimit>100</RowLimit></View>";
ListItemCollection listItems = list.GetItems(camlQuery);

clientContext.Load(listItems,
      items => items.ListItemCollectionPosition,
      items => items.Include(
              item => item["ID"],
              item => item["Title"]
              ));

clientContext.ExecuteQuery();


我想做的是在运行时为Include方法生成lambda表达式。仍然没有运气。我尝试的每个解决方案都给我错误“不支持查询表达式”。

最佳答案

您可以使用以后要查询的列创建一个特定的视图,并在调用GetItems方法时使用该视图。

10-04 18:29