首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用实体框架6事务

使用实体框架6事务
EN

Stack Overflow用户
提问于 2014-04-08 19:20:46
回答 1查看 1.7K关注 0票数 0

我有一组关于在EF 6中使用事务的问题。我在数据库查询中使用了以下代码模板:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
using (var ctx = new MyContext(connectionString))
{
    using (var tx = ctx.Database.BeginTransaction(IsolationLevel.Snapshot))
    {
          try
          {
               // query database
               ctx.SaveChanges();
               tx.Commit();
          }
          catch(Exception ex)
          {
               tx.Rollback();

               if(ex is A) // handle A
               if(ex is B) // handle B                   

               throw;
          }
    } 
}
  • 我将只查询数据库一次,调用SaveChanges()一次。如果发生异常,是否需要回滚事务?
  • 我的一些事务只会读取数据,所以我不会调用SaveChanges()。在这种情况下,我应该仍然调用Commit()吗?
  • 我正在考虑使用SqlAzureExecutionStrategy来实现连接弹性。在某一时刻会发生瞬态故障吗?它只是在执行查询或调用SaveChanges()时使用吗?ctxtxCommit()调用的初始化如何?它们会导致这样的失败吗?
  • 是否有一种不太紧凑的方式来查询事务中的数据库?对于每一个查询,我都需要使用上面的代码模板,它显著重复了代码,例如两个使用语句、try-catch块和泛型异常处理。我相信,最后一种方法可以通过从SqlAzureExecutionStrategyDbExecutionStrategy派生出来。我完全支持尽可能多地重构代码。
EN

回答 1

Stack Overflow用户

发布于 2014-04-08 20:37:49

您不必实际使用实体框架.中的事务

默认的隔离模式是读取提交的,完全符合99%的需求,例如。读取数据。当您想保存对数据库所做的更改(Create、Update、Delete)时,EntityFramework足够聪明地创建一个事务,而无需在幕后通知您来包装这些更改。您可以确保所有的东西都会被保存,或者每一个更改都会被丢弃(原子性)。

看这里,https://coderwall.com/p/jnniww

基本实体框架操作块。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
using (var context = new ProductContext()) 
{ 
    try
    {
        // Perform data access using the context 
        context.SaveChanges();
    }
    catch(Exception ex)
    {
        //handle exception
    }

}

希望它能对你有帮助,祝你今天愉快。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22952166

复制
相关文章
Rafy 领域实体框架简介
按照最新的功能,更新了最新版的《Rafy 领域实体框架的介绍》,内容如下: 本文包含以下章节: 简介 特点 优势 简介 Rafy 领域实体框架是一个轻量级 ORM 框架。 与一般的 ORM 框架不同的是,它不只关注于一般性的面向对象实体与关系数据库的映射,而是更关注于富领域模型(聚合实体)与关系数据库的映射。使得开发者可以非常方便地使用富领域模型的同时,配备强大的实体属性设计、查询功能,并兼顾了极高的开发效率。 该框架可脱离 Rafy 框架其它组件独立运行,同时集领域驱动设计、面向服务架构、模型驱动架构、产
用户1172223
2018/01/30
1.4K0
NLP(6)——命名实体识别
普通的工具如hanlp,htp,不能识别特定领域的专有名词,所以需要实体识别的算法。下面就以医疗专业为例子来谈一下医疗专业的命名实体识别。
DC童生
2018/08/27
2K2
NLP(6)——命名实体识别
ADO.NET 实体框架概述
随着.NET Framework 3.5 SP1和Visual Studio 2008 SP1的正式发布。ADO.NET 实体框架正式来到开发人员的面前,它使开发人员可以通过对象模型(而不是逻辑/关系数据模型)专注于数据。实体框架有助于将逻辑数据架构抽象为概念模型,并且允许以多种方式通过对象服务和名为“EntityClient”的新数据提供程序与概念模型交互。 实体框架组件 实体框架使开发人员可以编写更少的数据访问代码,减少维护,将数据结构抽象化为更易于开展业务(标准化程度较低)的方式,并且有利于数据的持久
张善友
2018/01/30
1.4K0
ADO.NET 实体框架概述
Rafy 领域实体框架演示(3) - 快速使用 C/S 架构部署
本系列演示如何使用 Rafy 领域实体框架快速转换一个传统的三层应用程序,并展示转换完成后,Rafy 带来的新功能。 《福利到!Rafy(原OEA)领域实体框架 2.22.2067 发布!》 《Rafy 领域实体框架示例(1) - 转换传统三层应用程序》 《Rafy 领域实体框架演示(2) - 新功能展示》 以 Rafy 开发的应用程序,其实体、仓库、服务代码不需要做任何修改,即可同时支持单机部署、C/S 分布式部署。本文将说明如果快速使用 C/S 分布式部署。 前言 截止到上一篇,我们开发的应用程序都是采
用户1172223
2018/01/30
6540
Rafy 领域实体框架演示(3) - 快速使用 C/S 架构部署
spring6-事务
Spring 框架对 JDBC 进行封装,使用 JdbcTemplate 方便实现对数据库操作
程序员小甲
2023/10/13
2081
spring6-事务
开源实体映射框架EmitMapper介绍
EmitMapper是一个开源实体映射框架,地址:http://emitmapper.codeplex.com/。
跟着阿笨一起玩NET
2018/09/20
1.3K0
《Entity Framework 6 Recipes》翻译系列 (1) —–第一章 开始使用实体框架之历史和框架简述「建议收藏」
  微软的Entity Framework 受到越来越多人的关注和使用,Entity Framework7.0版本也即将发行。虽然已经开源,可遗憾的是,国内没有关于它的书籍,更不用说好书了,可能是因为EF版本更新太快,没人愿意去花时间翻译国外关于EF的书籍。使用Entity Framework开发已经有3年多了,但用得很肤浅,最近想深入学习,只好找来英文书《Entity Framework 6 Recipes》第二版,慢慢啃。首先需要说明的是,我英文不好,只是为了学习EF。把学习的过程写成博客,一是督促自己,二是希望能帮助有需要的朋友。EF是微软极力推荐的新一代数据库访问技术,它已经成熟,做为一名.NET开发人员,如果你还没有使用它的话,那感紧开始吧,特别是DDD(领域驱动设计)的爱好者,更应该学习它,因为它是领域模型的绝佳搭档!另外,本书也是一本关于EF的佳作(其实,英文的关于EF的书也就那么几本,中文的目前还没有,只有一些零星的资料,这会让初学者会感觉到混乱,特别是什么EDMX文件、Code First、Model First、Database First、表拆分,实体拆分,TPT,TPH,TPC,CodeFirst和DDD的配合等等),就从本系列开始对EF进行一个系统的学习吧,老鸟也可以从中了解不少的知识点。文中肯定有很多翻译不当的地方,恳请你指正,以免误导大家。谢谢!由于书中的代码只贴出核心部分,如果你想运行示例代码,可以加入QQ群下载,因为太大,超过博客园的限制,所以这里提供不了下载。要说的就这么多,下面就开始这一段学习过程吧。
Java架构师必看
2022/03/30
1.4K0
《Entity Framework 6 Recipes》翻译系列 (1) —–第一章 开始使用实体框架之历史和框架简述「建议收藏」
Rafy 领域实体框架 - 树型实体功能(自关联表)
在 Rafy 领域实体框架中,对自关联的实体结构做了特殊的处理,下面对这一功能进行讲解。 场景 在开发数据库应用程序时,往往会遇到自关联表的场景。例如,分类信息、组织架构中的部门、文件夹信息等,都是不
用户1172223
2018/01/29
1.6K0
Rafy 领域实体框架 - 树型实体功能(自关联表)
Spring框架 Spring事务
1 、什么事务 ( 1 )事务是数据库操作最基本单元,逻辑上一组操作,要么都成功,如果有一个失败所有操 作都失败 ( 2 )典型场景:银行转账
郭顺发
2023/07/07
2130
DDD理论学习系列(6)-- 实体
1.引言 实体对应的英语单词为Entity。提到实体,你可能立马就想到了代码中定义的实体类。在使用一些ORM框架时,比如Entity Framework,实体作为直接反映数据库表结构的对象,就更尤为重要。特别是当我们使用EF Code First时,我们首先要做的就是实体类的设计。在DDD中,实体作为领域建模的工具之一,也是十分重要的概念。 但DDD中的实体和我们以往开发中定义的实体是同一个概念吗? 不完全是。在以往未实施DDD的项目中,我们习惯于将关注点放在数据上,而非领域上。这也就说明了为什么我们在软
圣杰
2018/01/11
1.8K1
【数据架构】SOGAF 通用实体框架 (CoE)
Salesforce 运营、治理和架构框架 (SOGAF) 将 MIT-CISR 企业架构框架应用于 Salesforce 实施和程序。 介绍 为共同实体(即卓越中心)制定一个明确的定义是很棘手的。转换程序中的通用实体 (CoE) 有多种名称: “卓越中心”、“C4E”、“专业中心”、“专家网络” 术语“设计授权”或“平台授权”也用于通用实体,这会造成一些混淆 不同的描述会导致不同的期望——当没有得到满足时会感到沮丧 此类问题在难以确定是转型、能力还是最佳实践中心的实体中很常见 共同实体也可以扮演任意数
架构师研究会
2022/04/19
1.4K0
【数据架构】SOGAF 通用实体框架 (CoE)
Rafy 框架 - 大批量导入实体
某些场景下,开发者希望能够大批量地把实体的数据导入到数据库中。虽然使用实体仓库保存实体列表非常方便,但是其内部实现机制是一条一条的保存到数据库,当实体的个数较多时,效率就会很低。所以 Rafy 设计了批量导入插件程序,其内部使用 ADO.NET 及 ODP.NET 中的批量导入机制来把大量数据一次性导入到数据库中。 使用方法 步骤 由于批量导入功能是一个额外的程序集,所以在使用该功能时,需要先使用 NuGet 引用最新版本的 Rafy.Domain.ORM.BatchSubmit 程序集。 如果准备导入
用户1172223
2018/01/29
1.3K0
信息安全技术 实体鉴别保障框架
本文是学习信息安全技术 实体鉴别保障框架. 下载地址 http://github5.com/view/1676而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们
用户10293610
2023/01/07
7690
Spring6 JdbcTemplate和事务
Spring 框架对 JDBC 进行封装,使用 JdbcTemplate 方便实现对数据库操作
鱼找水需要时间
2023/06/17
3860
Spring6 JdbcTemplate和事务
6.深入TiDB:乐观事务
由于 TiDB 的事务模型沿用了 Percolator 的事务模型。所以先从 Percolator 开始,关于 Percolator 论文没看过的同学看这里:https://www.luozhiyun.com/archives/609 我已经翻译好了
luozhiyun
2021/11/02
6320
分布式事务框架Seata
1. 数据库管理系统中事务(transaction)的四个特性:简称ACID(这种特性简称刚性事物)
全栈程序员站长
2022/11/17
8260
分布式事务框架Seata
tp6对于事务
事务:要么一起成功,要不一起失败。不存在一条成功一条失败的结果. 必须是innndb类型的表。因为只有innodb才支持事务!!! sql原来:
贵哥的编程之路
2022/05/18
2820
tp6对于事务
【自然框架】之 “表单控件”与“实体类”
      对于简单的添加、修改,也就是没有什么业务逻辑的那种,表单控件的工作步骤是这样的,以添加数据为例。这个不用写什么代码,点点鼠标就可以搞定了。       但是对于复杂的业务逻辑的需求,就不能
用户1174620
2018/02/26
8670
【自然框架】之 “表单控件”与“实体类”
Rafy 领域实体框架 - 公司内部培训视频
本月给公司内部一个项目做架构重构,其中使用到了 Rafy 框架。所以我培训了 Rafy 领域实体框架的使用方法,过程中录制了视频,方便其他同事查看。现在把视频放到园里来分享下,有兴趣的朋友可以看看,有什么问题可以进 Rafy QQ 群询问。 关于 Rafy 开源框架的详细介绍:《Rafy 领域实体框架 2.22.2067 发布!》。 如何下载并使用框架:《使用 NuGet 下载最新的 Rafy 框架及文档》。 本次培训一共有 7 个视频: 1.老系统架构讲解、新系统架构思想简介 2.新架构、开发流程介绍
用户1172223
2018/01/29
9290
Facebook 开源 Golang 实体框架 Ent 现已支持 TiDB
对于后端开发者来说,一款好用的框架能够大大提升应用的开发效率。为了降低开发者使用 TiDB 的门槛,方便开发者快速连接到 TiDB,我们也在和合作伙伴一起,逐步完善面向主流开发语言和框架的连接支持。
PingCAP
2022/03/25
8180

相似问题

实体框架6事务

32

实体框架6:异步、同步和事务

13

如何在实体框架6中使用组合事务

24

实体框架事务

34

实体框架6-在事务中保存数据

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文