zoukankan      html  css  js  c++  java
  • 不足百行代码 实体数组转DataTable通用类

        在最近做的一个案子里,需要绑定实体数组比如Materiel[]绑定到界面(winform/webform都有),虽然可以直接绑定数组到GridView,但排序,过滤,查找等操作在数组里不是很方便。所以想借用DataTable做数据源。

       最简单的方法就是手动建一个DataTable。为每个Materiel的property建一个Column,然后指明其数据类型。建好Table之后,循环为每个Materiel创建一个新行。如果多有几个界面,虽然做起来都差不多,但代码很难重用。

       另外数据都是从WebService获取,form不允许直接访问DB,所以也不能通过ADO.net获取DataTable。

      经过一段时间的考量后决定见一个专用的Utility类EntityCollectionsConvert,接口为

    DataTable ToDataTable(object[] entitys);

    DataTable ToDataTable<T>(List<T> entitys)

    实现的原理也比较简单

    1.将判断entitys不为空;

    2.取出entitys的所有property

    3.在DataTable中为每个property添加一列(包括元素类型)

    4.为每个entity添加一行。

    5.自动生成单元测试,测试,添加到项目中

    public static DataTable ToDataTable(List entitys)
  • 相关阅读:
    Python开发入门与实战16-APACHE部署
    Python开发入门与实战15-IIS部署
    Python开发入门与实战14-基于Extjs的界面
    团队作业4:第三篇Scrum冲刺博客(歪瑞古德小队)
    团队作业4:第二篇Scrum冲刺博客(歪瑞古德小队)
    团队作业4:第一篇Scrum冲刺博客(歪瑞古德小队)
    团队作业4:项目冲刺集合贴(歪瑞古德小队)
    团队作业3:需求改进&系统设计(歪瑞古德小队)
    团队作业2:需求规格说明书(歪瑞古德小队)
    使用docker安装codimd,搭建你自己的在线协作markdown编辑器
  • 原文地址:https://www.cnblogs.com/shinn/p/1332323.html
Copyright © 2011-2022 走看看