基础才是重中之重~Data层如何调用BLL层的方法,如果觉得奇怪请看本文章
看似不伦不类
这个题目有点不伦不类,或者说有点伪模式了,不错,确实是这样,我们正确的开发思维是WEB层->BLL层->DATA层,每个层有对它下层的引用,下层不能引用上层,因为这会出现相互引用的错误,在实际工作中,BLL层会有涉及到各个业务的代码组织,实现数据持久化一般在Data层完成,这是可以理解的,也是我们经常使用的开发模式,这当然不是今天的重点,今天主要说一个实际问题,如订单处理的场合.
一般订单处理流程如下:
1 用户选择商品到购物车
2 用户确定购买,生成订单
3 选择一种或者几种支付方式
4 支付完成,回写订单,修改订单状态
5 支付交易成功,或者失败
OK,这种订单业务事实上是很复杂了,它会涉及到很多表的操作,它可能由多个开发人员去编写,最后进行统一组合,而为了保证数据的有效性,我们会把代码重装到事务里,这时问题就来了
当你的订单主方法在data层实现,如何去调用bll已经写好的方法呢?我们总不能再重新写一个吧,当然不能,相同的代码不能出现两次,这是我们的原则,呵呵.
方法回调
概念:我们在一个方法里处理事件,事件处理完成后,再调用原方法层次的某个方法,这种调用,我们可以称为回调方法,它可以通过委托来实现,而对于如今的业务,我们也可以通过这种方式来实现,看一下DEMO
这是我们的data层方法签名:
public void GeneratorOrder(List<Order_Info> list, Action<IUnitOfWork, int, int> authorizeClassroom)
我们看到,它的参数里有个Action委托,它有三个参数,这个方法是通过BLL层传递进来的,当data层的工作完成后,可以回调这个BLL的方法,我们看一下BLL层这个方法的签名:
void AuthorizeClassroom(IUnitOfWork db, int userID, int classroomID)
看一下,BLL层去调用data层方法,将把委托实例以参数的形式传入data层
orderInfoRepository.GeneratorOrder(list, AuthorizeClassroom);
最后,使用我们的事务,把它们组合到一起(BLL层与Data层使用同一个事务,注意,它不是分布式事务,前提是它们的数据上下文是一个)
TransactionScopeNoMsdtc.UsingNoMsdtc(Db, true, () =>
{
...
}
最后,通过SQL监视工作看到的结果就是它们处在同一事务块里,呵呵.
aaarticlea/png;base64,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" alt="" />
基础才是重中之重~Data层如何调用BLL层的方法,如果觉得奇怪请看本文章的更多相关文章
- WPF MVVM UI分离之《交互与数据分离》 基础才是重中之重~delegate里的Invoke和BeginInvoke 将不确定变为确定系列~目录(“机器最能证明一切”) 爱上MVC3系列~全局异常处理与异常日志 基础才是重中之重~lock和monitor的区别 将不确定变成确定~我想监视我的对象,如果是某个值,就叫另一些方法自动运行 将不确定变成确定~LINQ DBML模型可以对
WPF MVVM UI分离之<交互与数据分离> 在我们使用WPF过程中,不可避免并且超级喜欢使用MVVM框架. 那么,使用MVVM的出发点是视觉与业务逻辑分离,即UI与数据分离 诸如下 ...
- 基础才是重中之重~关于ThreadStatic和Quartz的一点渊源
回到目录 ThreadStatic ThreadStatic是C#里的一个特性,它可以让你的字段在一个线程里有效,但你不能控制这个字段在何时被回收,即如果声明一个int32的字段为ThreadStat ...
- 基础才是重中之重~C#中标准的IDispose模式
回到目录 IDispose模式在C++中用的很多,用来清理资源,而在C#里,资源分为托管和非托管两种,托管资源是由C#的CLR帮助我们清理的,它是通过调用对象的析构函数完成的对象释放工作,而对于非托管 ...
- 基础才是重中之重~delegate里的Invoke和BeginInvoke
回到目录 Invoke和BeginInvoke都是调用委托实体的方法,前者是同步调用,即它运行在主线程上,当Invode处理时间长时,会出现阻塞的情况,而BeginInvod是异步操作,它会从新开启一 ...
- MVC003之调用BLL层方法(BLL层调用了WebService)
项目又BLL类库,在类库中引用了webservice.在web层调用BLL的方法时 错误如下: 在 ServiceModel 客户端配置部分中,找不到引用协定“OAService.IntranetSe ...
- 基础才是重中之重~方法override详解
回到 目录 之所以写这篇文章,完全是因为这次代码审核,这次代码审核过程当中,出现了很多我认为基础知识不够扎实的问题,所以,打算把它们记录下来,共大家分享. 方法的override,即方法的覆写或者重写 ...
- 基础才是重中之重~用好configSections让配置信息更规范
对于小型项目来说,配置信息可以通过appSettings进行配置,而如果配置信息太多,appSettings显得有些乱,而且在开发人员调用时,也不够友好,节点名称很容易写错,这时,我们有几种解决方案 ...
- C# 基础才是重中之重~对象的生与死
为何要写 之所以写这篇文章,完全是因为学生们在实际开发中遇到的问题,一个对象占用的内存空间总不被释放,导致系统内存不断攀升,其最主要原因是我们对“对象的生与死”不清楚,或者从来没有认真去考虑过这件事, ...
- 基础才是重中之重~Emit动态构建方法(参数和返回值)
回到目录 对于Emit我们知道它的可以动态构建程序集,类型,方法,属性等,或者说只要手动使用C#创建的东西使用Emit也都可以动态创建它们,Emit由于它的特别之处,所以在很多领域得到了广泛的应用,像 ...
随机推荐
- Gray Code
Gray Code The gray code is a binary numeral system where two successive values differ in only one bi ...
- Good-Bye
嘛……以一种奇怪的姿势滚粗了…… 如果这个Blog能给未来的OIer们一些帮助的话,它也不枉存在了…… 我的OI之路也能以另一种形式延续下去吧…… 也许能搞ACM的话会再开?…… 不管怎么说,各位再见 ...
- ruby 学习笔记 2 -变量
变量 在ruby的世界里,变量有5种,全局变量 局部变量 实例变量 常量 类变量以及伪变量 常用的: 全局: 在全局使用,使用$开头,因为是全局的,所以在任何的代码例子中都可以改变其值,造成混乱,所以 ...
- Win7 关闭Window update
1.设置注册表关闭自动更新 按组合键“windows+r”,打开“运行”栏,输入“regedit”,打开注册表找到下面的路径HKEY_CURRENT_USER\Software\Microsoft\W ...
- 成功转移安卓手机QQ聊天记录
废话先不说,直接上干货: 只要把两个地方的数据完整的复制到新手机对应位置就可以了,但过程相当坎坷: /data/data/com.tencent.mobileqq /sdcard/Tencent/Mo ...
- 关于合并“.a”文件时遇到的问题
今天在给工程添加百度地图SDK时,涉及到百度地图的模拟器与真机环境下的.a文件的合并,在使用终端进行 合并时,出现: xcrun: error: active developer path (&quo ...
- Java Servlet与Web容器之间的关系
自从计算机软件开发进入网络时代,就开始涉及到通讯问题.在客户/服务器(也叫C/S应用)时期,每个软件都有自己的客户端和服务器端软件.并且客户端和服务器端之间的通讯协议差别也很大.后来随着互联网的发展, ...
- C# 图片压缩
/// <summary> /// 图片压缩方法 /// </summary> /// <param name="sF ...
- libev安装与示例程序编译运行
Linux平台C网络编程,之前总是看各大名著(如UNIX环境高级编程和UNIX网络编程,还有TCP/IP详解 卷1:协议和深入理解计算机系统(原书第2版)),同时写点小程序练习.然而还是拿不出手. 参 ...
- js二级导航下拉菜单
<!DOCTYPE html> <html> <head> <title>导航列表</title> <meta http-equiv= ...