zoukankan      html  css  js  c++  java
  • .net实体新解

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


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

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

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

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

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

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

  • 相关阅读:
    UOJ.26.[IOI2014]Game(交互 思路)
    Good Bye 2016 F.New Year and Finding Roots(交互)
    Codeforces.835E.The penguin's game(交互 按位统计 二分)
    Codeforces.744B.Hongcow's Game(交互 按位统计)
    Codeforces.862D.Mahmoud and Ehab and the binary string(交互 二分)
    正睿OI 提高 Day1T3 ZYB玩字符串(DP)
    划分vlan
    2三层交换机实现vlan间的路由
    交换机基础-交换机远程telnet
    自动化运维环境的搭建问题处理
  • 原文地址:https://www.cnblogs.com/needrunning/p/2250068.html
Copyright © 2011-2022 走看看