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

原文地址:https://www.cnblogs.com/yinxuejunfeng/p/9684019.html

时间: 2024-08-12 13:14:45

EF+LINQ事物处理的相关文章

ef linq select where dynamic singleordefault

singleordefault(where) 条件不支持动态 所以想要达到目标,就需要转换思路,把where在前面调用,然后再接,代码如下 public TResult GetSingle<T, TResult>(Expression<Func<T, bool>> exWhere, Expression<Func<T, TResult>> selector) where T : class { using (SysDb<T> db =

[.NET] EF LINQ 按时间对数据分类汇总

======================================================== 作者:qiujuer 博客:blog.csdn.net/qiujuer网站:www.qiujuer.net开源库:Genius-Android转载请注明出处:http://blog.csdn.net/qiujuer/article/details/41868331======================================================== 发现国内

ASP.NET EF(LINQ/Lambda查询)

EF(EntityFrameWork) ORM(对象关系映射框架/数据持久化框架),根据实体对象操作数据表中数据的一种面向对象的操作框架,底层也是调用ADO.NET ASP.NET MVC 项目会自动导入MVC程序集,因为默认.NET环境(GAC)中没有这个程序集 1 create database MyFirstEF 2 on primary 3 ( 4 name='MyFirstEF.mdf', 5 --修改为自己电脑上SQL DB路径 6 filename='E:\ProgramMSSQL

ASP.NET MVC4.0+EF+LINQ+EasyUI+网站+角色权限管理系统(1)

本系列的的角色权限管理主要采用Dotnet MVC4工程内置的权限管理模块Simplemembership实现,主要有关文件是InitializeSimpleMembershipAttribute.cs和AccountModels.cs 下面是对这两个文件的了解和改造 WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", &qu

一个简单的EF Linq MVC Web应用程序

LINQ(Language Integrated Query)语言集成查询是一组用于c#和Visual Basic语言的扩展. 它允许编写C#或者Visual Basic代码以操作内存数据的方式,查询数据库. LINQ的读法:lin k 很多人会误读为lin Q LINQ的全称:Language-Integrated Query LINQ的关键词:from, select, in, where, group by, orderby, … 详情请查阅:https://baike.so.com/do

MVC +EF+linq 多表联查

关于linq的多表联查效果的实现: 后台多表查询  内连接: SELECT [Extent2].[partID] AS [partID], [Extent1].[userName] AS [userName], [Extent3].[partName] AS [partName]FROM [dbo].[User] AS [Extent1]INNER JOIN [dbo].[User_partB] AS [Extent2] ON [Extent1].[userGUID] = [Extent2].[

ASP.NET MVC4.0+EF+LINQ+bui+bootstrap+网站+角色权限管理系统(3)

接下来完成用户.角色的增删查改,以及用户角色.权限的设置 对用户表.角色表做了一些扩展如下[可以更加自己需要增减字段] 相应的M_UserProfile.cs.M_Roles.cs进行扩展 using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using Syst

ASP.NET MVC4.0+EF+LINQ+bui+网站+角色权限管理系统(7)

今天将使用Simplemembership进行权限控制 我们使用mvc的AuthorizeAttribute来实现对Controller and Action权限控制 看如下标为红色的代码片段: /// <summary> /// 删除数据操作 /// </summary> /// <param name="id"></param> /// <returns></returns> [MVCSystemAuthori

asp.net MVC + EF , Linq的基本用法

public ActionResult Index() { NewsEntities news = new NewsEntities(); //select * from NewsInfo #region 排序 var query = from s in news.NewsInfo orderby s.ID descending //ascending select new { id = s.ID, name = s.Name, auter = s.Auter }; //构造属性 foreach