【问题标题】:How can i select distinct using one field如何使用一个字段选择不同的
【发布时间】:2021-01-10 02:34:15
【问题描述】:

如何根据一个字段选择distinct()

我有以下 LINQ 表达式,我如何选择不同的 ID 字段。出于某种原因,我使用了.Distinct(),但一直显示重复,我只想显示一条记录

 var customersbyName = await _context.vw_CustomerSearch.AsNoTracking()
                            .Where(c => c.Name.Contains(request.searchWord))   
                            .Distinct()
                            .ToListAsync();

【问题讨论】:

标签: asp.net asp.net-mvc linq asp.net-core


【解决方案1】:

distinct比较行的每一列,所以如果一列不同,则行对于linq/sql来说是不同的。

您可以尝试使用 GroupBy:

var customersbyName = await _context.vw_CustomerSearch.AsNoTracking()
  .Where(c => c.Name.Contains(request.searchWord))
  .GroupBy(i => i.ID)
  .Select(x => x.First())

【讨论】:

    【解决方案2】:

    尝试:

    var customersbyName = await _context.vw_CustomerSearch.AsNoTracking()
                                .Where(c => c.Name.Contains(request.searchWord))
                                .Select(c => c.ID)
                                .Distinct()
                                .ToListAsync();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-18
      • 2014-06-07
      • 1970-01-01
      • 1970-01-01
      • 2017-03-16
      • 1970-01-01
      • 1970-01-01
      • 2020-12-17
      相关资源
      最近更新 更多