日期:2014-05-20  浏览次数:21035 次

纯数据类是否必要?
我看了一下NHibernate的例子,发现一般都会做一个纯数据类来对应数据库中的一个表
而微软的Duwamish则构造一个继承自DataSet的类,在里面构建一个或者多个DataTable来对应数据库。
而我对OOA与OOD的理解则是
在业务逻辑方面应该尽量的避免与数据库相关,就是说,根据用户需求,识别对象,而这些对象与数据库无关,业务逻辑就写在这些对象里面,需要时就调用数据访问层来获得数据。
但如何将数据库的表映像成对象则不知应该用何种方式?


------解决方案--------------------
.Net中的类型化的DataSet可以用工具XSD.exe(vs2005)或在.xsd文件中选中生成代码选项(vs2003)来生成其对应的类。


------解决方案--------------------
如果不是用强类型数据集,DTO当然非常有必要,但适当情况也可以考虑用结构
------解决方案--------------------
很有必要,

"纯数据类 ", 一般就是指数据容器, 在.Net中 一般采用Dataset/DataTable当做数据容器
而且一般会用ORM工具将数据表映射为实体(强类型数据容器)。

数据层一般提供通用的数据操作/访问接口,可以看成数据控制对象

这样把 "数据控制 "和 "数据实体 "分离出来,符合“职责分离”的原则,使得两者之间依赖减少...
------解决方案--------------------
不 “必要”, 应该根据具体的情况来决定方案。 在某些超简单的场合,或对数据访问效率要求极苛刻的场合,甚至最好的方案是直接在代码里写Sql语句(虽然很少这种场合)