Sharepoint Online: удаляются ли вложения при удалении ListItem?

Будут ли вложения ListItem также удалены, если я вызову метод ListItem.DeleteObject, который удалит мой элемент? Или вложенные файлы все еще на моем сервере? Как я могу это проверить? Я использую клиентскую объектную модель!


person D. Müller    schedule 21.01.2016    source источник


Ответы (1)


Да, вложения, связанные с элементом списка, удаляются после ListItem.DeleteObject метод вызывается, и запрос отправляется на сервер через ClientContext.ExecuteQueryметод.

В следующем примере показано, как проверить, были ли удалены вложения:

//First, lets delete list item that contains attachments 
var list = ctx.Web.Lists.GetByTitle(listTitle);
var item = list.GetItemById(itemId);
ctx.Load(list.RootFolder, f => f.ServerRelativeUrl);
item.DeleteObject(); //delete list item operation
ctx.ExecuteQuery();

//Then, let's verify whether associated attachment file(s) have been deleted  
var attachamentRootFolderUrl = string.Format("{0}/Attachments",list.RootFolder.ServerRelativeUrl);
var attachamentFolderUrl = string.Format("{0}/{1}", attachamentRootFolderUrl, itemId);
var folder = ctx.Web.GetFolderByServerRelativeUrl(attachamentRootFolderUrl);
var result = ctx.LoadQuery(folder.Folders.Where( f => f.ServerRelativeUrl == attachamentFolderUrl));
ctx.ExecuteQuery();
if (!result.Any())
{
     Console.WriteLine("Attachaments have been deleted.");
}  
person Vadim Gremyachev    schedule 27.01.2016