C # SharePoint Исключение «Microsoft.SharePoint.Client.PropertyOrFieldNotInitializedException», когда GetFileByServerRelativeURL - PullRequest
0 голосов
/ 13 мая 2019

Я получаю PropertyException на 2-й части этого кода.Первая часть загружает файл, как и ожидалось.После context.ExecuteQuery(); я получаю:

'uploadedFile.CheckInComment' сгенерировал исключение типа 'Microsoft.SharePoint.Client.PropertyOrFieldNotInitializedException'

Я не являюськонечно, потому что контекст должен быть в порядке, так как он загрузил файл.

Я собираюсь обновить некоторые поля метаданных в только что загруженном документе.

    Folder currentRunFolder = site.GetFolderByServerRelativeUrl(barRootFolderRelativeUrl + "/");
FileCreationInformation newFile = new FileCreationInformation
{
    Content = System.IO.File.ReadAllBytes(@p),
    Url = Path.GetFileName(@p),
    Overwrite = true
};

currentRunFolder.Files.Add(newFile);
currentRunFolder.Update();
context.ExecuteQuery();
newUrl = siteUrl + barRootFolderRelativeUrl + "/" + Path.GetFileName(@p);

// Set document properties
Microsoft.SharePoint.Client.File uploadedFile = context.Web.GetFileByServerRelativeUrl(newUrl);
ListItem listItem = uploadedFile.ListItemAllFields;
listItem["TestEQCode"] = "387074";
listItem.Update();
context.ExecuteQuery();

Ответы [ 2 ]

0 голосов
/ 16 мая 2019

Хорошо, так что даже если ListItems имеет значение NULL, я могу установить TestEQCode и обновить, а поле обновляется на стороне SharePoint. Все это время я был обеспокоен тем, что ListItems получает фактический список метаданных, но на самом деле это не нужно. Мне просто придется жестко закодировать эти элементы, и он будет обновляться. -

0 голосов
/ 14 мая 2019

Не могли бы вы попробовать это.

currentRunFolder.Files.Add(newFile);
//currentRunFolder.Update();
context.Load(newFile);
context.ExecuteQuery();
//newUrl = siteUrl + barRootFolderRelativeUrl + "/" + Path.GetFileName(@p);

// Set document properties
//Microsoft.SharePoint.Client.File uploadedFile = context.Web.GetFileByServerRelativeUrl(newUrl);
ListItem listItem = newFile.ListItemAllFields;
listItem["TestEQCode"] = "387074";
listItem.Update();
context.ExecuteQuery();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...