开始先简单交代一下DAL, 所谓DAL, 即是DNN数据访问层(Data Access Layer), 主要负责数据库和业务逻辑的交互, 利用设计模式中的工厂模式来实现数据提供者的分离, 从而可兼容不同数据库.
DNN从4.x版本之后引入一个新生宠儿, 所谓DAL+(Data Access Layer Plus), 顾名思义, DAL+就是对DAL的插件(或补充), 是DAL的一个子集.是一种对数据库访问和交互的替代方式. 当你深入了解DNN核心代码及其机制时, 你会发现DAL+就是对DNN所包含的Microsoft Application Blocks的封装, 你所调用Microsoft Application Blocks可完全用DAL+来操作数据访问. 其操作流程如图:
就如图所展示的,DAL+屏蔽了具体数据访问层,而直接访问抽象数据访问层. DAL+不需具体的数据访问提供者,它主要包含DNN框架默认数据访问的四个方法:
1 ) ExecuteNonQuery: 执行没有返回值的存储过程
2 ) ExecuteReader: 执行返回多个记录值的存储过程
3 ) ExecuteScalar: 执行只有一个返回值的存储过程
4 ) ExecuteSQL: 执行具体的SQL语句