如何使用客户端对象模型(Client Object Model)以最佳方式获取SharePoint列表项及其属性?
以下是我正在使用的代码。
string server = "http://localhost";
ClientContext context = new ClientContext(server);
Web web = context.Web;
var spList = web.Lists.GetByTitle("Contact");
CamlQuery query = new CamlQuery();
var items = spList.GetItems(query);
context.Load(items,
itema => itema.Include(
item => item,
item => item["CustomerId"]));
context.ExecuteQuery();
Console.WriteLine("Items");
foreach (var item in items.ToList())
{
context.Load(item);
}
context.ExecuteQuery();
foreach (var item in items)
{
foreach (var a in item.FieldValues)
{
Console.WriteLine(a.Key + ":" + a.Value.ToString());
}
}
我希望能够移除在上下文中用于加载列表项的单行foreach,并且如果可能的话,在第一个Execute Query中就加载项目字段值。
我尝试使用以下代码:
context.Load(items,
itema => itema.Include(
item => item,
item=> item.FieldValues,
item => item["CustomerId"]));
这个方案不起作用。
有没有人能提供一个更简单的解决方案?