Duwamish7学习笔记(三)

王朝other·作者佚名  2006-01-09
宽屏版  字体: |||超大  

DataAccess项目

DataAccess项目中共4个类:Books类,Categories类,Customers类,Orders类.均实现了IDisposable接口。用来关闭活动的数据库连接。

这是MS提倡的一种释放非托管资源的Dispose模式。有关Dispose模式《.NET框架程序设计(修订本)》的19章“自动内存管理(垃圾收集)”有精采的论述.

类中通过调用存储过程,封装了对4个业务对象的Select,Insert,Update操作。

Select操作通过SqlDataAdapter的Fill方法填充对应的继承自DataSet的业务实体类,返回给调用者。Books类和Categories类只有Select操作.

Insert和Update操作通过一个private 函数返回InsertCommand或UpdateCommand对象。再于对外的的Public函数调用Private内部函数完成相应操作。Customers类中实现Insert,Update,Select操作,Orders类只有Insert操作。

在Customers类的LoadCustomerByEmail()方法中有对ApplicationAssert类的CheckCondition()方法调用

ApplicationAssert.CheckCondition(data.Tables[CustomerData.CUSTOMERS_TABLE].Rows.Count <= 1, "Integrity Failure: non-unique e-mail address", ApplicationAssert.LineNumber);

疑问:

1.数据访问层感觉实现了业务逻辑层的内容,平时如LoadCustomerByEmail()等方法都是写在业务逻辑层的。

2.是否有必要抽象出一个完全对数据库操作的基类,实现对数据库底层的操作?而不是在每个类如:Books,Customers中均一次次重写如SqlCommand对象,Dispose模式?

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有