当前位置:   article > 正文

.NET DataTable扩展之快速处理DataTable映射到List数组_datatable数据放list数组

datatable数据放list数组
// C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.8\System.Data.DataSetExtensions.dll

我项目引用的是.NETFramework\v4.8下的一个扩展.dll

  1. public List<CaseStatusModel> GetTECaseStatus()
  2. {
  3. using (var db = new DBCommon())
  4. {
  5. var result = new List<CaseStatusModel>();
  6. string sql = @"with
  7. t as(
  8. select count(ID) CaseCount,IsActive,[Period] from TE_T_TESummaryCase where 1=1 group by IsActive ,[Period]
  9. )
  10. select top 12 t.[Period]
  11. ,sum(case t.IsActive when 1 then t.CaseCount else 0 end) as PendingCase
  12. ,sum(case t.IsActive when 0 then t.CaseCount else 0 end) as ClosedCase
  13. from t
  14. group by t.[Period]
  15. order by t.[Period] desc";
  16. DataTable dt = db.ExecuteQuery(sql.ToString());
  17. if (dt != null && dt.Rows.Count > 0)
  18. {
  19. result = dt.AsEnumerable().Select(t => new CaseStatusModel()
  20. {
  21. //可空选项
  22. Month = t.Field<DateTime?>("Period")?.ToString("yyyy-MM"),
  23. PendingCase = t.Field<int>("PendingCase"),
  24. ClosedCase = t.Field<int>("ClosedCase")
  25. }).ToList();
  26. }
  27. return result;
  28. }
  29. }

原表长这样

数据库查询结果长这样

 List返回长这样

以前项目没有数据对象映射方法的时候,for循环遍历DataTable感觉没有这种精简吧,特此记录

 仅供学习参考,如有侵权联系我删除

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/253671?site
推荐阅读
相关标签
  

闽ICP备14008679号