我要过滤在 D365
中从RetrieveAll
收到的QueryExpression
个结果
这是代码段:
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
使用多个密钥,但是不知道该怎么做。
让我知道是否需要其他信息。
注意:我想在这里使用动力学属性,这些属性将由 用户。