EF+LINQ事物处理
程序员文章站
2023-04-06 20:54:03
在使用EF的情况下,可能也会存在说我有多个站点,同时去访问一个数据库,操作同一条数据的同一个值,那么我们怎么来进行事物的处理呢 有这么一个很好的解决方式 EF6里面提供了这么一个方式来处理事物 Database.BeginTransaction() : 为用户提供一种简单易用的方案,在dbEntit ......
在使用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(); } } } } } }