我是SharePoint的新手,想要使用C# ClientContext类和CAML查询来删除SharePoint列表中的所有行。
如何高效地实现它呢?
我是SharePoint的新手,想要使用C# ClientContext类和CAML查询来删除SharePoint列表中的所有行。
如何高效地实现它呢?
我解决了它。所得的教训是我们需要倒序删除列表中的项。
链接:http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splistitemcollection.delete.aspx
ListItemCollection listItems = oList.GetItems(CamlQuery.CreateAllItemsQuery());
clientContext.Load(listItems,
eachItem => eachItem.Include(
item => item,
item => item["ID"]));
clientContext.ExecuteQuery();
var totalListItems = listItems.Count;
Console.WriteLine("Deletion in " + currentListName + "list:");
if (totalListItems > 0)
{
for (var counter = totalListItems - 1; counter > -1; counter--)
{
listItems[counter].DeleteObject();
clientContext.ExecuteQuery();
Console.WriteLine("Row: " + counter + " Item Deleted");
}
}
使用 CAML 将 deleteAllItems 的值从 False 更改为 True。
然后,使用工作流程
如果 deleteAllItems == True,则删除所有项目。
将 deleteAllItems 重置为 False。
解决客户端性能问题。 :)
if (counter % 100 == 0){ clientContext.ExecuteQuery(); }
。 - Emaborsa