【问题标题】:How would I grab the first 10 unique items from my database我如何从我的数据库中获取前 10 个唯一项目
【发布时间】:2023-03-30 14:35:01
【问题描述】:

我正在使用 UnitOfWork 函数从我的数据库中获取项目,如下所示:

var items = UnitOfWork.ConversationPosts.Query(postFilter).Take(10);

但是,有没有办法获得前 10 个独特的物品?我尝试使用这样的 Linq 函数,但我不知道如何正确使用它:

var items= UnitOfWork.ConversationPosts.Query(postFilter).Take(10).Where(x =>x.id ___);

【问题讨论】:

  • 哪些列应该是唯一的?
  • 我只需要 id 列是唯一的。不是整个元素。谢谢
  • 嗯.. id 本身不应该是唯一的吗?如果它不是主键,那么你应该使用分组。
  • 感谢 maxlego。在这种情况下,id 实际上不是主键。能否解释一下如何对我的项目进行分组?
  • 如果你使用group by,那么你不能选择整行。你得到聚合值(最小值,最大值,总和......)和分组的值。所以我们需要知道你想要的结果是什么

标签: c# linq unit-of-work


【解决方案1】:
var items = UnitOfWork.ConversationPosts
              .Query(postFilter)
              .GroupBy(c => c.Id)
              .Select(d => d.First())
              .Take(10);

【讨论】:

    猜你喜欢
    • 2017-07-14
    • 1970-01-01
    • 1970-01-01
    • 2019-03-06
    • 1970-01-01
    • 2020-12-29
    • 1970-01-01
    • 2019-06-14
    • 2020-05-05
    相关资源
    最近更新 更多