Я хочу отфильтровать по RetrieveAll
результат, полученный от QueryExpression
в D365
Вот фрагмент кода:
private static List<IGrouping<string, Entity>> RetrieveDuplicates(IOrganizationService _crmService, DuplicateSearch duplicateSearch)
{
QueryExpression query = GenerateQueryExpression(duplicateSearch.EntityLogicalName, duplicateSearch.DuplicatedColumnName, duplicateSearch.ColumnList.ToArray());
Console.WriteLine("\n INFO: Finding duplicates is in progress ... \n");
var results = _crmService.RetrieveAll(query)
.OrderBy(e => e.GetAttributeValue<string>(duplicateSearch.DuplicatedColumnName))
.ThenByDescending(e => e.GetAttributeValue<DateTime>("createdon"))
.GroupBy(e => e.GetAttributeValue<string>(duplicateSearch.DuplicatedColumnName), e => e).ToList();
WriteDuplicateRecordsInFile(results, duplicateSearch.EntityLogicalName);
return results;
}
Я думаю передать duplicateSearch.DuplicatedColumnName
как List<string>
, но не знаю, как мне установить его в GroupBy
.
Но теперь, согласно требованию, я хочу GroupBy
несколько ключей, но не знаю, как я могу это сделать.
Дайте мне знать, требуется ли какая-либо другая информация.
Примечание: я хочу использовать здесь атрибуты динамики, которые будут выбраны
пользователь.