林克,过滤掉倍数

本文关键字:过滤 林克 | 更新日期: 2023-09-27 17:58:52

我在MVC项目中编写了一个搜索函数,它与数据库匹配。

数据库的结构如下:

Name-string(数据的名称)

SubName-字符串(数据的子名称)

SomeData-int(实际数据)

因此,如果我有大约100个帖子,其中有一个名称和一个特定的子名称,它们的数据值不同。然后又有100个帖子使用相同的名称但使用不同的子名称。

现在,当我搜索数据库时,我使用这个linq代码;

        var names = db.Graphs
            .Where(r => r.Name.Contains(term))
            .Take(5).Distinct()
            .Select(r=> new {label = r.Name});

我原以为梅比会得到5个不同的答案,但它没有。。。

我得到了前100个帖子中的5个,我想过滤一下,这样我就只使用带有次名称的uniqe名称。所以在上面的例子中,我会恢复2个入口。

感觉我已经尝试了所有的东西,但都失败了,所以任何输入都会被通知。

林克,过滤掉倍数

   var names = db.Graphs
    .Where(r => r.Name.Contains(term))
    .GroupBy(s=>s.Name).Take(5)
    .Select(r => new { label = r.FirstOrDefault().Name });

您应该在Take()之前应用Distinct()。我希望这会有所帮助。