列表到LINQ查询

列表到LINQ查询,linq,Linq,我有一个数据库SP,返回的结果如下表所示 ProductID ProductName Composition 1 PRod1 pc1 1 PRod1 pc11 2 PRod2 pc2 2 PRod2 pc22 1 Prod1 pc111 因为这是作为列表返回的,我有一个包含 PVM{productId,productName和List CO

我有一个数据库SP,返回的结果如下表所示

ProductID ProductName Composition 
1          PRod1       pc1
1          PRod1       pc11
2          PRod2       pc2
2          PRod2       pc22
1          Prod1       pc111  
因为这是作为列表返回的,我有一个包含 PVM{productId,productName和List COMPORTIONVM}和compsotionVM{productId,COMPORTION}

我想从上述结果中提取一些信息

Result.Select(r =>new PVM{Id = r.Id,Name = r.ProductName,                                         compsotionVM ).ToList()}).ToList();
i、 e.产品Id、产品名称和要绑定到视图的所有组件的列表。
任何帮助或建议都将是gr8帮助。

您可以尝试以下查询:

result.GroupBy(item => new{item.ProductID, item.ProductName})
                     .Select(group => 
                         new PVM
                             {
                                 ProductID = group.Key.ProductID, 
                                 ProductName= group.Key.ProductName, 
                                 Compositions = 
                                    group
                                    .Select(g=>
                                        new CompositionVM
                                        {
                                            ProductID = g.ProductID, 
                                            Composition = g.Composition
                                        })
                                        .ToList()
                             });
因为您希望通过组合组合(z)列将具有相同名称(x)和Id(y)的产品分组在一起

这里的想法是在主查询中根据2个组条件(x和y)进行分组,然后对于查询中的每个项,将是同一组中的项的组合,这允许您执行如下子查询

group
.Select(g=>
  new CompositionVM
  {
      ProductID = g.ProductID, 
      Composition = g.Composition
  })
  .ToList()

张,感谢并感谢您的回复,时间会落实并看到的。