C# 如何获得LINQ Groupby的嵌套结果

C# 如何获得LINQ Groupby的嵌套结果,c#,entity-framework,linq,asp.net-mvc-4,C#,Entity Framework,Linq,Asp.net Mvc 4,我的代码如下 GetDairyHeaderInfoByEmail(id) .Where(p => p.ATTRIBUTE15 == id) .Select(jk=> new { jk.HEADER_ID_PK, jk.VENDOR_ID, jk.VENDOR_SITE_ID, jk.VENDOR_NAME, jk.ADDRESS_LINE1, jk.ATTRIBUTE15

我的代码如下

GetDairyHeaderInfoByEmail(id)
    .Where(p => p.ATTRIBUTE15 == id)
    .Select(jk=> new {
        jk.HEADER_ID_PK,
        jk.VENDOR_ID,
        jk.VENDOR_SITE_ID,
        jk.VENDOR_NAME,
        jk.ADDRESS_LINE1,
        jk.ATTRIBUTE15
    })
    .GroupBy(p => p.HEADER_ID_PK)
    .Select(p => new {
        header_id_pk = p.Key,
        invoice_id_pk = _ippDetailServices.GetDairyHeaderInfoByEmail(id).Where(k => k.HEADER_ID_PK == p.Key).Select(c => new { c.APP_INVOICES_ID_PK, c.INVOICE_TYPES, c.IS_HOURLY }).ToList() }).ToList();
我看到的结果如下

GetDairyHeaderInfoByEmail(id)
    .Where(p => p.ATTRIBUTE15 == id)
    .Select(jk=> new {
        jk.HEADER_ID_PK,
        jk.VENDOR_ID,
        jk.VENDOR_SITE_ID,
        jk.VENDOR_NAME,
        jk.ADDRESS_LINE1,
        jk.ATTRIBUTE15
    })
    .GroupBy(p => p.HEADER_ID_PK)
    .Select(p => new {
        header_id_pk = p.Key,
        invoice_id_pk = _ippDetailServices.GetDairyHeaderInfoByEmail(id).Where(k => k.HEADER_ID_PK == p.Key).Select(c => new { c.APP_INVOICES_ID_PK, c.INVOICE_TYPES, c.IS_HOURLY }).ToList() }).ToList();
[{ “标题识别码主键”:800.0

但我希望结果如下

GetDairyHeaderInfoByEmail(id)
    .Where(p => p.ATTRIBUTE15 == id)
    .Select(jk=> new {
        jk.HEADER_ID_PK,
        jk.VENDOR_ID,
        jk.VENDOR_SITE_ID,
        jk.VENDOR_NAME,
        jk.ADDRESS_LINE1,
        jk.ATTRIBUTE15
    })
    .GroupBy(p => p.HEADER_ID_PK)
    .Select(p => new {
        header_id_pk = p.Key,
        invoice_id_pk = _ippDetailServices.GetDairyHeaderInfoByEmail(id).Where(k => k.HEADER_ID_PK == p.Key).Select(c => new { c.APP_INVOICES_ID_PK, c.INVOICE_TYPES, c.IS_HOURLY }).ToList() }).ToList();
[{

对不起,如果有麻烦的话,这是我的第一个问题。 谢谢


我明白了,我只需要在我的Group By子句中添加那些主列。

请1)格式化代码。2)对代码使用代码语法,而不是引号语法。我编辑了一部分作为示例。我本来可以完成全部工作,但我现在正在打电话。如何做到这一点,我在问题的富文本框中没有太多选项可用。感谢您,等待您的示例。再次感谢!尝试编辑您的问题,您应该会看到我是如何格式化代码的。
var dairy = _ippDetailServices.GetDairyHeaderInfoByEmail(id).Where(p => 
p.ATTRIBUTE15 == id).Select(jk=> new { jk.HEADER_ID_PK, 
jk.VENDOR_ID, 
jk.VENDOR_SITE_ID, 
jk.VENDOR_NAME, 
jk.ADDRESS_LINE1, 
jk.ATTRIBUTE15 
}).GroupBy(p => new { p.HEADER_ID_PK, 
p.VENDOR_ID, p.VENDOR_SITE_ID, 
p.VENDOR_NAME, p.ADDRESS_LINE1, 
p.ATTRIBUTE15 }).Select(p => new { 
header_id_pk = p.Key, invoice_id_pk = 
_ippDetailServices.GetDairyHeaderInfoByEmail(id).Where(k => k.HEADER_ID_PK == 
p.Key.HEADER_ID_PK).Select(c => new { c.APP_INVOICES_ID_PK, 
c.INVOICE_TYPES, 
c.IS_HOURLY }).ToList() }).ToList();