【问题标题】:LINQ grouping and ignoring columnLINQ 分组和忽略列
【发布时间】:2012-05-16 16:24:20
【问题描述】:

我正在使用 EF 和 LINQ。 我的数据库表中有以下内容

branchId      Name        ItemId          CategoryId
2             Test1       1               1
5             Test1       1               1
3             Test1       1               2
2             Test2       2               1
7             Test2       2               1

我需要按 ItemId 分组,BranchId 应该被忽略,所以输出应该是

Name  ItemId  CategoryId
Test1 1       1
Test1 1       2
Test2 2       2

请帮忙。谢谢

【问题讨论】:

    标签: c# linq entity-framework group-by linq-to-objects


    【解决方案1】:

    您需要在多列上应用分组依据,因此您需要使用如下代码在多列上进行分组....

    var numberGroups = from it in context.items
                       group it by new { it.ItemId,it.Name,it.CateogryID } into g
                       select new { ItemID = g.Key.ItemID, Name= g.Key.Name
                                    CategoryID = g.Key.CategoryID };
    

    【讨论】:

    • 不起作用。我不能按 it.ItemId 和 it.CategoryId 分组??
    • 当我开始输入 group it by it.ContentObjectId,... 在“,”之后它告诉我“无法解析符号”
    • @PranayRana item 是 Shane Km 用于表示项目集合的名称,您需要将其替换为对表对象的引用,例如类似context.items
    • @PranayRana 即使它 只是 供参考(计数的东西是个好主意)你应该将它添加到文本中 - 那会少得多混乱!否则 - 只需删除可视化,因为它无论如何都做得不好! (这就像在谈论蓝色,但在使用或多或少的水时绘制黄色图片以显示对比效果 - 当然......颜色是基础,......但蓝色可能表现不同)
    【解决方案2】:
    var query = from item in context.Item
                group by item.Name,ItemId,item.CategoryId
               select item.Name,Item.Id,item.CategoryId;
    

    【讨论】:

    • 在您重新加载页面之前,我已经编辑了我的答案 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 2011-11-17
    • 2020-01-08
    • 2021-10-31
    • 1970-01-01
    相关资源
    最近更新 更多