在使用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(); } } } } } }