2014-02-28 111 views
1

我有一個數據庫SP,它返回的結果如下。列表到LINQ查詢

ProductID ProductName Composition 
1   PRod1  pc1 
1   PRod1  pc11 
2   PRod2  pc2 
2   PRod2  pc22 
1   Prod1  pc111 

由於這是返回作爲一個清單,我有包含 PVM {productId參數,產品名稱和列表compostionVM}和compsotionVM {的productID,Compostion}

我一直在尋找,提取一個ViewModel從上面的結果

即產品Id,Prouct名稱和所有組合的名單綁定到視圖。 任何幫助或建議將是gr8的幫助。

回答

0

你可以試試下面的查詢:

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() 
          }); 

當你想組具有相同名稱(x)和ID(Y)的產品一起通過結合組合物(Z)列。

所以這裏的想法是由主查詢中的2組條件(x和y)組成,然後對於查詢中的每個項目將是同一組中的項目組合,這允許您執行一個子查詢

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

張,謝謝,感謝您的回覆和時間將實施和看到。 – Harry

+0

@哈里。沒有親,希望能解決你的問題。:) –