首页 > 解决方案 > D365 - 使用 LINQ 查找复合键的重复记录

问题描述

我想过滤从D365RetrieveAll收到的结果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.DuplicatedColumnNameList<string>不知道如何设置它GroupBy

但是现在,根据要求,我想要GroupBy多个键,但不知道该怎么做。

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

注意:我想在这里使用用户选择的动态属性。

标签: c#linqdynamics-crmmicrosoft-dynamics

解决方案


推荐阅读