EF+LINQ事物处理

Posted yinxuejunfeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EF+LINQ事物处理相关的知识,希望对你有一定的参考价值。

在使用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事物处理的主要内容,如果未能解决你的问题,请参考以下文章

.net EF 事物 订单流水号的生成 :观察者模式

c# 有啥框架能取代EF的?

EF Linq to Sql 多表left join查询并对结果group by分组之后进行count,max等处理

并行LINQ PLinq

C#EF Linq如何写代码利用分类ID获取分类名称?

坑到了,EF执行带事物的存储过程