• .net实体新解


    传统的开发模型中一般会有一个实体层(这里的实体和MVC开发框架中的实体不是一个概念),
    这个实体层中的类,是数据库表在应用程序的映射,甚至类名称会与表一一对应.虽然是类,但是组成却只有属性,没有方法.
    这类实体的作用是传递数据的载体,简洁明了,例如当一个方法参数个数超过3个,而这这三个参数又代表一个表的
    相应字段时,他们就可以用一个实体类代替.


    以上算是实体类的一个优势,当然它的优势不仅如此.

    我们想想在数据层返回查询数据时,有几种格式?
    一般会返回单个字段,单个DataTable,甚至是DataSet

    单个字段很明了,我们暂且不提.说说DataTable,既然是DataTable,就是行的集合,每一行就可以用实体类
    来映射,所以在数据返回dataTable时,可以直接将其转化为实体集合。这样做的再外层调用时会比DataTable
    更直观,直接知道操作的是哪个具体的对象。

    这种方法一般应用的场景:
    单表查询,获得连表查询时表之间有继承关系,没有继承关系的连表查询的结果没法用一个实体表示,所以无法映射为实体集合。

    开发过程中有一个原则是封装变化

    我们在数据层操作数据表时肯定用到sql语句。select * from TableName(出于性能和规范原因,我不会直接用*,而是用相应的字段),好的,说到这里,变化出现了,就是这个查询字段
    select ColumName from TableName ,处于业务或者其它因素,通常我们的数据库字段会修改,这时我们就必须整个项目查找使用过该字段的方法,进行替换。
    既然实体层是数据库与应用程序映射的纽带,何不把实体层做下扩充呢?
    我们在实体类中加一个字段,其值就是数据表中的字段名称,在各个工程,各个方法中需要用到相应的字段都通过特定的实体类调用,
    当数据库发生变化时,重新生成实体类,其它工程不需要变化,数据访问层的sql语句也显得整洁和清晰。

  • 相关阅读:
    bzoj 2002: [Hnoi2010]Bounce 弹飞绵羊(分块算法)
    hdu 3652 "B-number"(数位DP)
    数位DP+其他
    hdu 4352 "XHXJ's LIS"(数位DP+状压DP+LIS)
    CodeForces 55D "Beautiful numbers"(数位DP+离散化处理)
    洛谷 P1163"银行贷款"(二分)
    ZOJ-3872-Beauty of Array-思维
    洛谷P3951 小凯的疑惑
    CodeForces
    CodeForces
  • 原文地址:https://www.cnblogs.com/needrunning/p/2250068.html
Copyright © 2020-2023  润新知