2012-11-12 40 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

相关问题