在C#里查询结果是返回实体类集合好?还是DataSet好?
如题
------解决方案--------------------以前是返回个DataSet
后来都是返回实体类集合用IList <T>
个人觉得在数据处理能力上IList <T> 比DataSet好操作
------解决方案--------------------我觉得返回实体类集合要好些。
这样方便BLL与DAL得分层开发,写BLL的可能不需要知道数据库字段的名称等等。
很多ORM不都要实现这些吗?呵呵
------解决方案--------------------用DatSet省时间.
实体类的话可能要多写点代码.不过比较安全.减少数据出错的机率.
如果时间够的话还是用实体类.也有利于分层.
------解决方案--------------------这个要根据你项目的真实需求来进行具体分析,list <> 对面向对象编码来说比较容易扩充,但效率方面有损失,dataset可能扩展性差点,但对数据库操作效率却比较高!
软件设计里没有绝对好的,关键就是是否适合你的需求!
------解决方案--------------------1 没有 DataSet干不了的事情
2 实体类便于分层结构清晰易于维护和管理
自己选择吧
------解决方案--------------------实体类集合还是需要对DataSet进行处理的
数据量大了,访问人数多了,系统性能会不行的
我现在底层框架都实现了重载,随便返回DataSet或者实体类集合(根据实体类各属性的类型,通过反射转换DataSet)
做大数据量处理的时候,内存和CPU使用量飙升哪
后面还是改成DataSet了,需要转换类型的时候再转换好了
如果只是返回一条记录用实体类集合还差不多
------解决方案--------------------我也想问这个东西。先说个例子。
如要显示一个员工信息。可能要关联到的表,员工表,部门表,组别表,学历表,省份表,地区表,职位表,级别表等。因为员工表中只保存相关表的ID。如果返回实体类集合,这个实体怎样写?这种情况是很多的,几乎每次查询都要关联几个表。
所以我做的系统都是查询时用sql返回DataSet。增删改操作实体。而且也认为查询返回DataTable是最方便的。
不知大家怎样做??
------解决方案--------------------区分service层和dao层
servie为业务相关的操作的集合 引用dao 操作实体类
dao为数据访问层 实现数据的查询 datatable或是datareader-》实体类的转换
------解决方案--------------------ASP.NET 2.0 有强类型的 DataSet,
数据控件一般也都可以绑定 IList <T>
前者比较省事,后者比较优雅,个人感觉. 当然DataSet与数据库交互的功能更强大
------解决方案--------------------再次来过
1 对于DataSet,其实在02的.net中就支持了Typed Dataset 照样可以实现其所谓了3层机构
可以理解为一个容器,其内容可大可小,放一条记录一个字段也是可以的。
2 我不赞同说“DataSet使得前台与数据库耦合太紧太松的说法”。
这与个人设计的数据访问方式有关,与层直接传递数据的方式有关。