2012-11-12 75 views
1

我的select返回db中的數據,其中每個對象都有幾個屬性。對於對象的每個屬性,我都有一個新行。 我使用Entity Framework來檢索數據。Linq select results with duplicating rows

var products = _ctx.ExecuteFunction<GetProducts_Result>("GetProducts"); 

GetProducts是一個存儲過程,返回以下結果。

Code | Name | Term | Rate 
--------+------+------+----- 
111  | Foo | 12 | 10 
111  | Foo | 24 | 12 
111  | Foo | 36 | 16 
222  | Boo | 12 | 8 
222  | Boo | 24 | 9 

我怎樣纔能有效地與LINQ查詢數據並映射到一類像

class Product 
{ 
    int Code 
    string Name 
    List<Term> terms; 
} 

如果期限是一個帶參數的類(期限,利率)

+0

我覺得這是缺少太多的數據。你如何得到第一個結果?順便說一下,如果你想以這種方式獲取數據,爲什麼你沒有以這種形式將數據保存在數據庫中? – gdoron

+0

是代碼+名稱的主鍵? –

回答

5
var products = from p in _ctx.ExecuteFunction<GetProducts_Result>("GetProducts") 
       group p by new {p.Code, p.Name} into g 
       select new Product 
       { 
        Code = g.Key.Code, 
        Name = g.Key.Name, 
        terms = g.Select(x => new Terms { 
              Term = x.Term, 
              Rate = x.Rate }).ToList() 
       }; 
+0

就像一個魅力,謝謝。 – Maxim

相關問題