zoukankan      html  css  js  c++  java
  • Entity Framework Working with Transactions

    namespace TransactionsExamples 
    { 
        class TransactionsExample 
        { 
            static void StartOwnTransactionWithinContext() 
            { 
                using (var context = new BloggingContext()) 
                { 
                    using (var dbContextTransaction = context.Database.BeginTransaction()) 
                    { 
                        try 
                        { 
                            context.Database.ExecuteSqlCommand( 
                                @"UPDATE Blogs SET Rating = 5" + 
                                    " WHERE Name LIKE '%Entity Framework%'" 
                                ); 
     
                            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(); 
                        } 
                    } 
                } 
            } 
        } 
    }
    namespace TransactionsExamples 
    { 
         class TransactionsExample 
         { 
            static void UsingExternalTransaction() 
            { 
                using (var conn = new SqlConnection("...")) 
                { 
                   conn.Open(); 
     
                   using (var sqlTxn = conn.BeginTransaction(System.Data.IsolationLevel.Snapshot)) 
                   { 
                       try 
                       { 
                           var sqlCommand = new SqlCommand(); 
                           sqlCommand.Connection = conn; 
                           sqlCommand.Transaction = sqlTxn; 
                           sqlCommand.CommandText = 
                               @"UPDATE Blogs SET Rating = 5" + 
                                " WHERE Name LIKE '%Entity Framework%'"; 
                           sqlCommand.ExecuteNonQuery(); 
     
                           using (var context =  
                             new BloggingContext(conn, contextOwnsConnection: false)) 
                            { 
                                context.Database.UseTransaction(sqlTxn); 
     
                                var query =  context.Posts.Where(p => p.Blog.Rating >= 5); 
                                foreach (var post in query) 
                                { 
                                    post.Title += "[Cool Blog]"; 
                                } 
                               context.SaveChanges(); 
                            } 
     
                            sqlTxn.Commit(); 
                        } 
                        catch (Exception) 
                        { 
                            sqlTxn.Rollback(); 
                        } 
                    } 
                } 
            } 
        } 
    }
    namespace TransactionsExamples 
    { 
        class TransactionsExample 
        { 
            static void UsingTransactionScope() 
            { 
                using (var scope = new TransactionScope(TransactionScopeOption.Required)) 
                { 
                    using (var conn = new SqlConnection("...")) 
                    { 
                        conn.Open(); 
     
                        var sqlCommand = new SqlCommand(); 
                        sqlCommand.Connection = conn; 
                        sqlCommand.CommandText = 
                            @"UPDATE Blogs SET Rating = 5" + 
                                " WHERE Name LIKE '%Entity Framework%'"; 
                        sqlCommand.ExecuteNonQuery(); 
     
                        using (var context = 
                            new BloggingContext(conn, contextOwnsConnection: false)) 
                        { 
                            var query = context.Posts.Where(p => p.Blog.Rating > 5); 
                            foreach (var post in query) 
                            { 
                                post.Title += "[Cool Blog]"; 
                            } 
                            context.SaveChanges(); 
                        } 
                    } 
     
                    scope.Complete(); 
                } 
            } 
        } 
    }
  • 相关阅读:
    requirejs按需加载angularjs文件
    Ricky_Huang的博客园网址二维码
    bootstrap双日历插件实例化
    angularjs ocLazyLoad分步加载js文件,angularjs ocLazyLoad按需加载js
    利用html5 canvas实现纯前端上传图片的裁剪
    <input type="file"> change事件异常处理办法
    react-native-http请求后navigator导航跳转
    js 将long型字符串转换成日期格式
    百度ueditor 实例化 Cannot set property 'innerHTML' of null 完美解决方案
    IDEA 创建Maven Web项目(图文版)
  • 原文地址:https://www.cnblogs.com/liandy0906/p/7136134.html
Copyright © 2011-2022 走看看