【问题标题】:Linq select result with duplicating rows重复行的Linq选择结果
【发布时间】:2012-11-12 23:02:45
【问题描述】:

我的选择从 db 返回连接数据,其中每个对象都有多个属性。对于对象的每个属性,我都有一个新行。 我使用实体框架来检索数据。

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)

【问题讨论】:

  • 我认为缺少太多数据。你如何得到第一个结果?对了,如果你想用这种方式获取数据,为什么不把数据以那种形式保存到数据库中呢?
  • Code+Name是主键吗?

标签: c# linq


【解决方案1】:
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()
               };

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-10
    • 1970-01-01
    • 2016-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-28
    • 2017-12-29
    相关资源
    最近更新 更多