EF+LINQ事物处理

匿名 (未验证) 提交于 2019-12-02 22:06:11

在使用EF的情况下,可能也会存在说我有多个站点,同时去访问一个数据库,操作同一条数据的同一个值,那么我们怎么来进行事物的处理呢

有这么一个很好的解决方式

EF6里面提供了这么一个方式来处理事物

Database.BeginTransaction() : 为用户提供一种简单易用的方案,在dbEntitys

中启动并完成一个事务 -- 合并一系列操作到该事务中。同时使用户更方便的指定事务隔离级别。

Database.UseTransaction() : 允许DbContext使用一个EF框架外的事务。

using System;  using System.Collections.Generic;  using System.Data.Entity;  using System.Data.SqlClient;  using System.Linq;  using System.Transactions;    namespace TransactionsExamples  {      class TransactionsExample      {          static void StartOwnTransactionWithinContext()          {              using (var db= new dbEntitys())              {                  using (var dbContextTransaction = db.Database.BeginTransaction())                  {                      try                      {                      var query = context.Posts.Where(p => p.Blog.Rating >= 5);                          foreach (var post in query)                          {                              post.Title += "[Cool Blog]";                          }                            context.SaveChanges();                            dbContextTransaction.Commit();                      }                      catch (Exception)                      {                          dbContextTransaction.Rollback();                      }                  }              }          }      }  }

文章来源: EF+LINQ事物处理
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!