MS согласилась с этим как с ошибкой, но на самом деле это различие контекста идентифицируется между классическим веб-интерфейсом и UCI.Только для объекта назначения, из-за некоторой известной проблемы ответа oData - целевой объект UCI пропустил отформатированные значения.
Я получил журнал профилировщика плагинов от моей команды QA, поэтому я не понял, что они тестируют в UCI, ноЯ тестировал в сети, поэтому быстрые часы показали разницу при воспроизведении / отладке.
В любом случае, до тех пор, пока MS не установит приоритеты и не исправит эту ошибку, у меня есть нижеприведенное решение, чтобы разблокировать эту проблему.
#region Workaround for fixing UCI app EntityReference coming as empty string
if (string.IsNullOrEmpty(organizer.Name))
{
ctLog.Log("organizer.Name is empty");
fetch = string.Format(@"<fetch>
<entity name='systemuser' >
<attribute name='fullname' />
<filter type='and' >
<condition attribute='systemuserid' operator='eq' value='{0}' />
</filter>
</entity>
</fetch>", organizer.Id);
ctLog.Log("fetch built");
results = userOrgService.RetrieveMultiple(new FetchExpression(fetch));
ctLog.Log("results count: " + results.Entities.Count);
if (results.Entities.Count > 0)
{
organizer.Name = results.Entities[0].GetAttributeValue<string>("fullname");
}
}
#endregion