c# - 如何在 Entity Framework 中使用事务?

标签 c# .net visual-studio-2008 entity-framework visual-studio-2010

如何在Entity Framework中使用事务?我在 Stackoverflow 上阅读了一些链接:Using Transactions or SaveChanges(false) and AcceptAllChanges()?

但是;我有 3 个表,所以我有 3 个实体:

CREATE TABLE Personel 
(PersonelID integer PRIMARY KEY identity not null, 
Ad varchar(30), 
Soyad varchar(30),
Meslek varchar(100),
DogumTarihi datetime,
DogumYeri nvarchar(100),
PirimToplamı float);

Go

create TABLE Prim
(PrimID integer PRIMARY KEY identity not null,
PersonelID integer Foreign KEY references Personel(PersonelID),
SatisTutari int,
Prim float,
SatisTarihi Datetime);

Go

CREATE TABLE Finans 
(ID integer PRIMARY KEY identity not null, 
Tutar float);

人员、Prim、Finans 我的 table 。如果您查看 Prim 表,您可以看到 Prim 值浮点值,如果我写的文本框不是浮点值,我的事务必须运行。

using (TestEntities testCtx = new TestEntities())
{
    using (TransactionScope scope = new TransactionScope())
    {
       // do something...
       testCtx.Personel.SaveChanges();
       // do something...
       testCtx.Prim.SaveChanges();
       // do something...
       testCtx.Finans.SaveChanges();
       scope.Complete();
       success = true;
    }
}

我该怎么做?

最佳答案

当您调用 SaveChanges 时, Entity Framework 将在单个事务中执行这些操作。

当您使用 TransactionScope class ,你是在说“我希望将在这个 block 中运行的内容封装在一个更大的事务中”,这确实是你所做的。

当您调用 Complete 时在 TransactionScope 上,它执行封装在由 TransactionScope 定义的事务中的所有操作的提交。

关于c# - 如何在 Entity Framework 中使用事务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2637972/

相关文章:

c# - 如何创建新的 Windows 窗体,并将其与已存在的线程关联?

visual-studio-2008 - 如何让 Visual Studio 2008 在不安装 SQL Business Intelligence Development Studio 2005 的情况下编辑 SSRS 2005 报表项目?

c# - 如何使用数据库中的值填充数据表

c# - SignalR通知系统

c# - 如何改进 C# 枚举

c# - 当没有满足任何 DataTrigger 值时设置属性 WPF

c# - 寻找 ASP.NET MVC 和 MonoRail 之间的现代比较

c# - 如何访问从 Powershell 的 .NET 事件返回的对象参数

c# - 确定 MethodInfo 是否表示 lambda 表达式

javascript - 打开 JavaScript 文件时 Visual Studio 2008 崩溃?