Linq to sql 之 事务
描述:linq 是自带事物的.如果建了两个linq to sql 类,各自访问不同的数据库,事物如何保证呢.
验证:采用常用的COM+事务来验证一下是否有效.
ServiceConfig config = new ServiceConfig();
config.Transaction = TransactionOption.Required;
ServiceDomain.Enter(config);
try
{
OA_TAB_LVBAL lvbal = dbHr.OA_TAB_LVBAL.SingleOrDefault(p => p.OA_LV_LEAVECODE == leaveCode && p.OA_LV_STAFFNO == staffNo && p.OA_LV_STARTDATE == balEndDate.AddYears(-) && p.OA_LV_ENDDATE == balEndDate);
if (lvbal == null)
{
lvbal = new OA_TAB_LVBAL();
lvbal.OA_LV_STAFFNO = staffNo;
lvbal.OA_LV_ADJUSTMENT = ;
//需判断文职或非文职
lvbal.OA_LV_ASSIGNEDDAYS = ;
lvbal.OA_LV_ENDDATE = balEndDate;
lvbal.OA_LV_LEAVECODE = "AL";
lvbal.OA_LV_REMARK = DateTime.Now.ToString() + "Insert";
lvbal.OA_LV_STARTDATE = balEndDate.AddYears(-);
dbHr.OA_TAB_LVBAL.InsertOnSubmit(lvbal);
dbHr.SubmitChanges(); } OA_TAB_CONTRACT_TASKS task = new OA_TAB_CONTRACT_TASKS();
task.DOC_ID = "";
task.TASK_COMPLETEDATE = DateTime.Now;
task.TASK_EXECUTOR = "";
task.TASK_ID = ;
task.TASK_NAME = "test";
task.TASK_STARTDATE = DateTime.Now;
task.TASK_STATUS = ;
task.TASK_TYPE = "BZ";
dbOa.OA_TAB_CONTRACT_TASKS.InsertOnSubmit(task);
dbOa.SubmitChanges();
ContextUtil.SetComplete();
}
catch (Exception ex)
{
ContextUtil.SetAbort();
throw ex;
}
finally
{
ServiceDomain.Leave();
}
向HR的数据库中oa_tab_lvbal 及OA的OA_TAB_CONTRACT_tasks 分别insert 一条记录.
1:执行成功,表中多了一条数据
2: 删除oa_tab_lvbal中插入的数据
3:执行,task表中插入时会抛出异常. 期望结果:oa_tab_lvbal中的记录也插入不成功.
4:验证通过.
Linq to sql 之 事务的更多相关文章
- <转>LINQ To SQL 语法及实例大全
一篇很全很强大的linq to sql 总结 来源:http://blog.csdn.net/pan_junbiao/article/details/7015633 目录(?)[-] LINQ to ...
- LINQ to SQL语句(13)之开放式并发控制和事务
Simultaneous Changes开放式并发控制 下表介绍 LINQ to SQL 文档中涉及开放式并发的术语: 术语 说明 并发 两个或更多用户同时尝试更新同一数据库行的情形. 并发冲突 两个 ...
- Linq to sql并发与事务
本文转载:http://www.cnblogs.com/lovecherry/archive/2007/08/20/862365.html 检测并发 首先使用下面的SQL语句查询数据库的产品表: se ...
- 年终巨献 史上最全 ——LINQ to SQL语句
LINQ to SQL语句(1)之Where 适用场景:实现过滤,查询等功能. 说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子句.Where操 ...
- LINQ to SQL语句(19)之ADO.NET与LINQ to SQL
它基于由 ADO.NET 提供程序模型提供的服务.因此,我们可以将 LINQ to SQL 代码与现有的 ADO.Net 应用程序混合在一起,将当前 ADO.NET 解决方案迁移到 LINQ to S ...
- LINQ To SQL
议程 1.LINQ To SQL概述 2.LINQ To SQL对象模型 3.LINQ To SQL查询 用到的数据库 SQL Server 2005,数据库名为Test. 两张表,分别为Studen ...
- LINQ TO SQL 大全
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精 LINQ to SQL语句(1)之Where 适用场景: ...
- LINQ to SQL大全
LINQ to SQL语句 (1)之Where Where操作 适用场景:实现过滤,查询等功能. 说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的 ...
- [转]LINQ To SQL 语法及实例大全
转载自:http://blog.csdn.net/pan_junbiao/article/details/7015633 LINQ to SQL语句(1)之Where Where操作 适用场景:实现过 ...
随机推荐
- [Unity插件]Lua行为树(四):条件节点和行为节点
条件节点和行为节点,这两种节点本身的设计比较简单,项目中编写行为树节点一般就是扩展这两种节点,而Decorator和Composite节点只需要使用内置的就足够了. 它们的继承关系如下: Condit ...
- Xcode6在iPhone5+iOS7模拟器上编译,上下有黑边问题
http://94it.net/a/jingxuanboke/2015/0113/447679.html
- Redis、MongoDB及Memcached的区别
Redis(内存数据库) 是一个key-value存储系统(布式内缓存,高性能的key-value数据库).和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).l ...
- python3下全自动快速度在线安装所有插件
把下面的内容复制存为pip.conf文件, [global]timeout = 60index-url = https://pypi.python.org/simple/no-cache-dir = ...
- 天天向上的力量 III(python在pycharm实现)
'''描述一年365天,以第1天的能力值为基数,记为1.0.当好好学习时,能力值相比前一天提高N‰:当没有学习时,能力值相比前一天下降N‰.每天努力或放任,一年下来的能力值相差多少呢?其中,N的取值范 ...
- java 常用第3方工具
https://www.cnblogs.com/chenpi/p/5608628.html#_label4
- 20165304《JAVA程序设计》第四周学习总结
教材内容总结 第五章 子类与继承 1.子类声明中通常用关键字extend来定义一个子类(class 子类名 extend 父类名{}) 2.子类和父类在同一包中的继承性,继承的成员变量或方法的访问权限 ...
- Tomcat的相关配置问题
Tomcat的目录结构bin --- 存放启动和关闭tomcat的脚本文件 conf --- 存放tomcat的各种配置文件 (主要有server.xml,context.xml,web.xml) ...
- HTML学习-1网页基础知识
HTML超文本标记语言:HyperText Markup Language. 由浏览器运行解析. 它包括了静态页面.html .htm.动态页面.php .aspx .jsp,从数据库提取. 今天 ...
- linux MYSQL大小写问题处理
1)window下默认大小写不敏感,所以在window下.创建表 test后再想创建表TEST会报错.而linux下默认可以.认为是不同的两张表 2)linux创建数据库,安装完毕后 首要任务是在li ...