如何在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/