D365-使用LINQ查找复合键的重复记录

时间:2019-07-11 19:33:31

标签: c# linq dynamics-crm microsoft-dynamics

我要过滤在 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使用多个密钥,但是不知道该怎么做。

让我知道是否需要其他信息。

  

注意:我想在这里使用动力学属性,这些属性将由   用户。

0 个答案:

没有答案