【问题标题】:Group By repeats the same title twiceGroup By 重复相同的标题两次
【发布时间】:2014-07-23 18:30:50
【问题描述】:

鉴于此 Linq 查询连接 3 个表只是为了检索 CategoryName,我最终得到了 2 个类别但也有两次相同的标题。我怀疑我需要一个 group by 来消除重复的标题并保留 2 个类别。

From ca In be_Categories Join c In be_PostCategory On ca.CategoryID Equals (c.CategoryID) 
Join p1 In be_Posts On c.PostID Equals (p1.PostID) Where p1.PostRowID = 1002
Select ca.CategoryName, p1.title

我已经在 LinqPad 中测试了查询,这就是我得到的:

我怀疑我需要一个 Group By 才能使查询正常工作,以便我可以返回 2 个类别,但只返回其他所有类别中的一个。我一直在阅读有关 Group By 的各种资源,但离让它发挥作用还差得远。

【问题讨论】:

    标签: vb.net linq group-by entity-framework-6.1


    【解决方案1】:

    从查询和结果看来,有 2 个类别符合过滤条件,Group By 不会让它们消失,您可能缺少一个可能会过滤掉一个的连接,但很可能您需要更多过滤器消除类别名称之一的标准

    这里有一个链接可以帮助您在 .Aggregate() 的一个查询中完成此操作

    Using LINQ to concatenate strings

    【讨论】:

    • 我正在尝试找出一种方法来获取两个类别,同时仍然获得一个标题等。还有其他方法可以将其过滤为 1 个标题和 2 个类别吗?
    • 您希望数据看起来如何?如果标题适合 10 个类别,您将获得 10 行,每行与标题配对。您是否希望将所有类别串联在一起以返回一行?
    • 是 - 单个标题的所有类别。
    • 我会获取您当前的结果集并在返回之前将其操作为您希望数据的外观。我确信有一种方法可以“继续”查询以使其成为一体,但我没有任何东西可以开始使用它来正确处理。
    • 添加了一个我认为会有所帮助的链接。
    猜你喜欢
    • 2015-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-18
    • 2011-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多