Linq选择具有重复行的结果

时间:2012-11-12 23:02:45

标签: c# linq

我的选择返回来自db的连接数据,其中每个对象都有几个属性。对于对象的每个属性,我都有一个新行。 我使用Entity Framework来检索数据。

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

其中Term是具有参数(Term,Rate)的类

1 个答案:

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