[EF]事务处理

EF支持事务处理操作,以下语句会获取当前DbContext对象专用的DbContextTransaction()事务处理对象

DbContextTransaction transaction=context.Database.BeginTransaction();
获取transaction之后,期间任何与context有关的数据操作均会纳入此事务处理的范围中,调用transaction.Commit方法即可完成事务处理,若要放弃事务处理,则调用transaction.Rollback方法即可达到目的。
//using TransactionsDemo.Model;

        using (KTStoreContext context = new KTStoreContext())
            {
                using (var transaction = context.Database.BeginTransaction())
                {
                    try
                    {
                        var products = context.Products;
                        foreach (Product product in products)
                        {
                            int p = (int)(product.Price * 0.5);
                            product.SPrice = p;
                        }
                        int c = context.SaveChanges();
                        transaction.Commit();
                        Console.WriteLine("更新了 {0} 项数据", c);
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                        Console.WriteLine("事务处理失败");
                    }
                }
            }
            Console.ReadKey();
发布了921 篇原创文章 · 获赞 379 · 访问量 326万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 鲸 设计师: meimeiellie

分享到微信朋友圈

×

扫一扫,手机浏览