Я просто пытаюсь заказать по их языку набор KnowledgeArticle.Моим первым предположением было:
var SPRSet = _XrmServiceContext.KnowledgeArticleSet
.Where(c => c.IsInternal == false)
.Where(c => c.StateCode == Xrm.KnowledgeArticleState.Published)
.OrderBy(s => s.LanguageLocaleId.Name)
Это дает мне следующую ошибку:
System.NotSupportedException: 'Вызов' orderBy 'должен указывать имена свойств.'
Затем я попытался загрузить сущность LanguageLocale, выполнив следующие действия:
SPRSet.OrderBy(s => _XrmOrganizationService.Retrieve(s.LanguageLocaleId.LogicalName, s.LanguageLocaleId.Id, new ColumnSet("name")).ToEntity<Xrm.LanguageLocale>().Name);
или аналогичный:
SPRSet.OrderBy(s => _XrmOrganizationService.Retrieve(s.LanguageLocaleId.LogicalName, s.LanguageLocaleId.Id, new ColumnSet("name")).GetAttributeValue<string>("name"));
Оба выдавали мне следующую ошибку:
System.ServiceModel.FaultException`1:
Сущность «KnowledgeArticle» не содержит атрибута с Name = 'name' и NameMapping = 'Logical'.MetadataCacheDetails: ProviderType = Dynamic, StandardCache = True, IsLoadedInStagedContext = False, Timestamp = 62358974, MinActiveRowVersion = 62358974 '
При отладке загрузка объекта LanguageLocale работает нормально, когда я оцениваю первый элемент в выражении выражения на оценкеМой набор:
var languageName = _XrmOrganizationService.Retrieve(SPRSet.First().LanguageLocaleId.LogicalName, SPRSet.First().LanguageLocaleId.Id, new ColumnSet("name")).ToEntity<Xrm.LanguageLocale>().Name
Другие сорта на Title
или ArticlePublicNumber
работают нормально.