EnsureUser не возвращает действительного пользователя - PullRequest
1 голос
/ 26 августа 2010

Я пытаюсь вернуть пользователя в SharePoint Client OM с помощью EnsureUser.Мой код:

ClientContext clientContext = new ClientContext(siteUrl);
User spUser = clientContext.Web.EnsureUser(user);

Где siteUrl и user - обе строки установлены соответствующим образом.

В результате spUser является оболочкой объекта User, но со всеми его свойствами (например, Email,Заголовок и т. Д.) Не инициализируются.В VS они показывают {"Свойство или поле не было инициализировано. Оно не было запрошено или запрос не был выполнен. Возможно, его нужно явно запросить."}

Что могло бы вызвать это?Я думал, что EnsureUser создаст пользователя, если его там еще нет.Я знаю, что в Server OM иногда нужно использовать «AllowUnsafeUpdates», есть ли что-то подобное для Client OM?

1 Ответ

8 голосов
/ 28 июля 2011

Уже почти год, но на тот случай, если кто-то другой ищет тот же ответ.После получения ссылки на объект пользователя перед доступом к свойствам пользователя необходимо сделать следующее:

clientContext.Load(spUser);
clientContext.ExecuteQuery();

или если вы хотите получить адрес электронной почты и заголовок только для уменьшения полезной нагрузки.*

clientContext.Load(spUser, u => u.Email, u => u.Title);
clientContext.ExecuteQuery();

По сути, он устанавливает запрос к SharePoint Web и запрашивает свойства spUser.Запрос будет отправлен при вызове ExecuteQuery ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...