ASP.NET中分布式事务的使用
2014-08-31 18:23
211 查看
之前发表了一篇事务的存储过程,最近在做项目的时候遇到分布式事务,所有总结一下,跟大家分享和交流一下经验。首先说明为什么要分布式事务呢?先说说我在项目的哪里遇到分布式事务吧,我是在做网站后台开发的时候,一般涉及到有图片表的设计时,数据库存放的是图片的路径,图片是存放在网站的文件夹下面,所以我们操作产品表时,当我要删除数据库产品图片路径,同时要把存在网站目录下的图片也删掉,为了实现这功能,我就使用了分布式事务。
思路:
1、在项目中必须引用 System.Transactions 程序集
2、在需要进行事务管控的代码方法:System.Transactions.TransactionScope scop = new System.Transactions.TransactionScope()
3、必须启动服务 Distributed Transaction Coordinator才能进行分布式事务的正常运行
下面是我写的一个例子主要代码:
说明:我操作数据库的方法是将数据库数据取出来转换成实体对象,然后通过操作实体对象来操作数据库。
思路:
1、在项目中必须引用 System.Transactions 程序集
2、在需要进行事务管控的代码方法:System.Transactions.TransactionScope scop = new System.Transactions.TransactionScope()
3、必须启动服务 Distributed Transaction Coordinator才能进行分布式事务的正常运行
下面是我写的一个例子主要代码:
//3.根据id将数据库和文件夹的图片一起删掉 //3.0根据id得到实体对象 ProductEntity entity = Product_BLLSub.Get_ProductEntity(int.Parse(id)); //3.1创建一个事务 using (System.Transactions.TransactionScope scop = new System.Transactions.TransactionScope()) { //3.2删除数据库图片的数据 Product_BLLSub.Create_ProductDelete(int.Parse(id)); //3.3得到图片的路径 string thumphyPath = context.Server.MapPath("/upload/thum/") + entity.img_url; string imgPhyPath = context.Server.MapPath("/upload/img/") + entity.img_url; //3.4删除缩略图 if (System.IO.File.Exists(thumphyPath)) { System.IO.File.Delete(thumphyPath); } //3.5删除原图 if (System.IO.File.Exists(imgPhyPath)) { System.IO.File.Delete(imgPhyPath); } //3.6提交事务 scop.Complete(); } //删除成功 Response.Write("删除成功");
说明:我操作数据库的方法是将数据库数据取出来转换成实体对象,然后通过操作实体对象来操作数据库。
相关文章推荐
- ASP.NET中分布式事务的使用
- ASP.NET Oracle数据库使用事务时注意事项
- asp.net 使用事务
- 【Asp.Net】 在存储过程中使用事务
- C#分布式缓存二:Asp.Net中使用Couchbase
- ASP.NET创建Web服务之使用事务
- ASP.NET Core 1.0 使用 Dapper 操作 MySql(包含事务)
- asp.net使用事务
- Asp.net 在三层架构中事务的使用实例代码
- asp.net使用事务
- asp.net 使用事务机制
- [ASP.NET] 事务(Transaction)是并发使用及C#上程序应用
- ASP.NET中使用三层架构事务的技巧实战
- ASP.NET创建Web服务之使用事务
- Asp.net 在三层架构中事务的使用
- asp.net 使用事务
- ASP.net(c#)+MySql 事务的使用方法
- ASP.NET中使用存储过程,参数及事务
- asp.net中使用Sqlserver事务时的体会,借鉴测试项目的脚本控制思想...
- 使用 Apache Ignite 实现 ASP.NET 的分布式输出缓存