如何在Entity Framework中使用交易?我在Stackoverflow上阅读了一些链接:Using Transactions or SaveChanges(false) and AcceptAllChanges()?
BUT;我有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);
Personel,Prim,Finans我的桌子。如果你看Prim表,你可以看到Prim值float值如果我写一个文本框而不是浮点值我的事务必须运行。
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;
}
}
我该怎么做?
答案 0 :(得分:12)
当您调用SaveChanges
时,实体框架将在单个事务中执行这些操作。
当您使用TransactionScope
class时,您说“我希望在此块中运行的内容被封装在更大的事务中”,这确实是您所做的。
当您在TransactionScope
上调用Complete
时,就会执行TransactionScope
定义的事务中封装的所有操作的提交。
答案 1 :(得分:1)
答案 2 :(得分:0)