EF 中事务的书写

在EF 中怎么使用事务?

这个问题纠结了我好久,直到有人跟我一起讨论,我和同事一起讨论查资料。

查的好多资料都是使用

using (TransactionScope scope = new TransactionScope())  
{  
  //具体代码内容
    scope.Complete();  
}  

这种方式。
而我在实际使用中是没法使用的。

所以我就一直找其他的方式,无意中看到某个网站的的database,然后我就采用了下面的方式:

复制代码
 1 using (var dbContext = new TopOnlineDbContext())
 2             {
 3                 using (var scope = dbContext.Database.BeginTransaction())
 4                 {
 5                     try
 6                     {
 7                         if (ids != null)
 8                         {
 9                             foreach (var id in ids)
10                             {
11                                 T t = dbContext.Find<T>(id);
12                                 assfeedback.IsDel = true;
13                                 dbContext.Update<T>(t);
14                             }
15                         }
16                         scope.Commit();//正常完成就可以提交
17                         return 0;
18                     }
19                     catch (Exception ex)
20                     {
21                         scope.Rollback();//发生异常就回滚
22                         return -1;
23                     }
24                 }
25             }
复制代码

 

posted @   大稳·杨  阅读(4663)  评论(3编辑  收藏  举报
编辑推荐:
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤
点击右上角即可分享
微信分享提示