【问题标题】:get the most recent updated record for each ID in the given list of IDs. LINQ获取给定 ID 列表中每个 ID 的最新更新记录。 LINQ
【发布时间】:2016-08-26 03:21:00
【问题描述】:

我在 SQLserver 中有一个名为 CandidateContacts 的表,其中包含以下字段 Id、createDate、dateUpdated、address

我正在尝试获取给定 ID 列表中每个 ID 的最新更新记录。

List<int?> candidateIds = new List<int?>;

candidateIds .Add(761);
candidateIds .Add(789);
candidateIds .Add(742);

以下语句给出以下错误:

运算符 '&&' 不能应用于类型为 'bool 和 'DateTime?' 的操作数?

var itemsMax = db.CandidateContacts.Where(x => candidateIds.Contains(x.idCandidateLogin) && db.CandidateContacts.Max(y => y.dateUpdated));

【问题讨论】:

    标签: c# linq


    【解决方案1】:

    您可以使用GroupBy 并按dateUpdated 的降序获取每个组的第一个元素:

    var res = await db.CandidateContacts.Where(p => candidateIds.Contains(p.idCandidateLogin))
                                        .GroupBy(y => y.idCandidateLogin)
                                        .Select(g=>g.OrderByDescending(y => y.dateUpdated).FirstOrDefault()).ToListAsync();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-17
      • 2021-01-10
      • 2015-10-30
      • 2017-07-27
      • 2021-01-20
      • 1970-01-01
      相关资源
      最近更新 更多