zoukankan      html  css  js  c++  java
  • 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(); 
                        } 
                    } 
                } 
            } 
        } 
    }
  • 相关阅读:
    公司后台切图
    XMLHttpRequest对象
    XML/JSDOM处理
    js访问xml之节点操作
    CSS3 输入框阴影效果及其他阴影效果
    GitHub用户仓库批量下载
    WTL10_9163应用向导安装后的小问题
    别学MFC了,要学就学这些...
    使用基于范围的 for 循环迭代范围
    使用未命名的命名空间代替静态全局变量
  • 原文地址:https://www.cnblogs.com/yinxuejunfeng/p/9684019.html
Copyright © 2011-2022 走看看