Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何对从SQL Server从LINQ查询返回的相同结果集的结果进行分组和联接?_C#_Linq - Fatal编程技术网

C# 如何对从SQL Server从LINQ查询返回的相同结果集的结果进行分组和联接?

C# 如何对从SQL Server从LINQ查询返回的相同结果集的结果进行分组和联接?,c#,linq,C#,Linq,我有以下数据结构 在客户报告中,有来自不同客户的多个订单,每个订单有一对多个项目。当我执行存储过程时,数据 它在结果集中返回的结果具有上述结构注意:查询中存在重复项,因为一个订单有许多项。有一个专栏 称为ReportSequence这是记录在报告上的出现顺序 public class CustomerReport { public int CustomerId { get; set; } //maps to the CustomerId column in SQL Query r

我有以下数据结构

在客户报告中,有来自不同客户的多个订单,每个订单有一对多个项目。当我执行存储过程时,数据 它在结果集中返回的结果具有上述结构注意:查询中存在重复项,因为一个订单有许多项。有一个专栏 称为ReportSequence这是记录在报告上的出现顺序

public class CustomerReport
{
    public int CustomerId { get; set; }     //maps to the CustomerId column in SQL Query result
    public string FirstName { get; set; }   //maps to the FName column
    public string LastName { get; set; }    //maps to the LName column
    public DateTime? ReportDate { get; set; }  //Generated at object creation
    public List<SaleOrder> SalesOrders { get; set; }  //see SaleOrder class

    public CustomerReport()
    {
        SalesOrders = new List<SaleOrder>();
    }
}
使用查询执行show on Excel屏幕截图返回的结果,我需要生成以下JSON结构:

    {
        "CustomerId" : "10001",
        "FirstName" : "Nicholas",
        "LastName" : "Cage",
        "ReportDate" : "toays date",
        SalesOrders: [
            { 
                SaleOrderId : 6 , 
                SaleOrderNumber : "EB100X100" ,
                SaleOrderTypeId : 102, 
                ReportSequenceNo : 1, 
                SalesOrderItems : [
                    { ItemTypeId : NULL, ItemId :  NULL, ItemName : Null }
                ]  
            },
            ...
        ]
    }

我采用的方法是:

首先,我尝试从一组数据中构建两组数据

原始结果集按SalesOrderId分组 上述内容与原文结合在一起 但是加入失败了。。。不能加入他们


如何使用上面的结果集和类从Linq构建这个JSON结构?

好吧,这里需要的是对源数据进行适当的分组

allRecords.GroupBy(a=>a.CustomerId).Select(b=> new CustomerReport(b.Key){ 
SalesOrders = b.Values.GroupBy(c=>c.SaleOrderId).Select(d=> new SaleOrder(d.Key).........)}

它不完整,但我希望能给你一个提示

…现在我真的迷路了…你传递给CustomerReport的b键是什么?x可能应该是b?事实上应该是b,我调整了代码段Excel电子表格不是LINQ的结果-你能显示实际的LINQ查询/结果吗?
    {
        "CustomerId" : "10001",
        "FirstName" : "Nicholas",
        "LastName" : "Cage",
        "ReportDate" : "toays date",
        SalesOrders: [
            { 
                SaleOrderId : 6 , 
                SaleOrderNumber : "EB100X100" ,
                SaleOrderTypeId : 102, 
                ReportSequenceNo : 1, 
                SalesOrderItems : [
                    { ItemTypeId : NULL, ItemId :  NULL, ItemName : Null }
                ]  
            },
            ...
        ]
    }

allRecords.GroupBy(a=>a.CustomerId).Select(b=> new CustomerReport(b.Key){ 
SalesOrders = b.Values.GroupBy(c=>c.SaleOrderId).Select(d=> new SaleOrder(d.Key).........)}