加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何在实体框架中使用事务?

发布时间:2020-12-15 17:50:51 所属栏目:百科 来源:网络整理
导读:如何使用Entity Framework中的交易?我读了一些关于Stackoverflow的链接: Using Transactions or SaveChanges(false) and AcceptAllChanges()? 但;我有3个表,所以我有3个实体: CREATE TABLE Personel (PersonelID integer PRIMARY KEY identity not null,A
如何使用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);

Personel,Prim,Finans我的桌子.如果您看到Prim表,您可以看到Prim值float值,如果我写一个textbox不是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;
    }
}

我怎样才能做到这一点?

解决方法

当您拨打 SaveChanges时,实体框架将在单个事务中执行这些操作.

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

当您在TransactionScope上调用Complete时,这是执行封装在TransactionScope定义的事务中的所有操作的执行.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读