格式化 LINQ 查询结果集

Posted

技术标签:

【中文标题】格式化 LINQ 查询结果集【英文标题】:Formatting LINQ Query Result Set 【发布时间】:2012-03-09 16:33:21 【问题描述】:

我正在开发一个 ASP.NET MVC 应用程序。此应用程序通过 JQuery 执行查询。结果集以 JSON 形式从我的 ASP.NET MVC 控制器返回。在我返回序列化结果集之前,我需要将其缩减为仅我需要的属性。为此,我使用了 LINQ 查询。该 LINQ 查询如下所示:

private IEnumerable RefineResults(ResultList<Result> results)
           
  // results has three properties: Summary, QueryDuration, and List
  var refined = results.Select(x => new
  
    x.ID, x.FirstName, x.LastName
  );

  return refined;

当我执行此方法时,我注意到精炼不包括原始查询中的 Summary 和 Duration 属性。我希望我的结果集的结构如下:

Summary
QueryDuration
Results
 - Result 1
 - Result 2
 - Result 3
 ...

此时,当我执行 RefineResults 时,我得到了我期望的结果列表。但是,我不知道如何将这些条目放在一个名为“结果”的属性中。我也不知道如何添加“Summary”和“QueryDuration”属性。

有人可以指点我正确的方向吗?

谢谢!

【问题讨论】:

【参考方案1】:
private object RefineResults(ResultList<Result> results)
           
  // results has three properties: Summary, QueryDuration, and List
  var refined = results.Select(x => new
  
    x.ID, x.FirstName, x.LastName
  );

  return new  Results = refined, Summary = results.Summary, QueryDuration = results.QueryDuration ;

您可能希望为此函数的返回值创建一个特定的 DTO 类。

【讨论】:

以上是关于格式化 LINQ 查询结果集的主要内容,如果未能解决你的问题,请参考以下文章

函数中的LINQ查询,该函数使用param来更改结果集

在 Django 中使用两个以不同方式格式化的查询集进行分页

plsql如何设置查询结果格式化

LinQ多表查询返回单张表的List<>结果集,但是页面要求用DataTable类型的接收这个结果集 如何将这个list转成

将日期时间转换为 LINQ-to-entities 查询中的格式化字符串

在 Linq-to-Entities 查询中格式化日期会导致异常