我是SharePoint的新手,希望使用c# ClientContext类和CAML Query删除SharePoint列表中的所有行。
我怎样才能有效地实现它?
我解决了。我们学到的是,我们需要按倒序删除list中的项。
: 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");
}
}
另一个解决方法:-创建一个项目(说:deleteAllItems),在一个新的列表(说:configuration)。
-
使用CAML将deleteAllItems值从False更改为True
-
然后,使用工作流,
如果deleteAllItems == True,删除所有项目
reset deleteAllItems为False。
解决客户端性能问题。:)