当前位置:编程学习 > asp >>

.net实体新解

 

传统的开发模型中一般会有一个实体层(这里的实体和MVC开发框架中的实体不是一个概念),

这个实体层中的类,是数据库表在应用程序的映射,甚至类名称会与表一一对应.虽然是类,但是组成却只有属性,

没有方法.

这类实体的作用是传递数据的载体,简洁明了,例如当一个方法参数个数超过3个,而这这三个参数又代表一个表的

相应字段时,他们就可以用一个实体类代替.

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

 

我们想想在数据层返回查询数据时,有几种格式?

一般会返回单个字段,单个DataTable,甚至是DataSet

 

单个字段很明了,我们暂且不提.说说DataTable,既然是DataTable,就是行的集合,每一行就可以用实体类

来映射,所以在数据返回dataTable时,可以直接将其转化为实体集合。这样做的再外层调用时会比DataTable

更直观,直接知道操作的是哪个具体的对象。

 

这种方法一般应用的场景:

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

 

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

 

我们在数据层操作数据表时肯定用到sql语句。select * from TableName(出于性能和规范原因,我不会直接用*,而是用相应的字段),好的,说到这里,变化出现了,就是这个查询字段

select ColumName from TableName ,处于业务或者其它因素,通常我们的数据库字段会修改,这时我们就必须整个项目查找使用过该字段的方法,进行替换。

既然实体层是数据库与应用程序映射的纽带,何不把实体层做下扩充呢?

我们在实体类中加一个字段,其值就是数据表中的字段名称,在各个工程,各个方法中需要用到相应的字段都通过特定的实体类调用,

当数据库发生变化时,重新生成实体类,其它工程不需要变化,数据访问层的sql语句也显得整洁和清晰。

作者 dreamhappy

补充:Web开发 , ASP.Net ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,