Как использовать Транзакцию в Платформе Объекта?

Как использовать транзакции в Платформе Объекта? Я прочитал некоторые ссылки на Stackoverflow: Используя Транзакции или SaveChanges (ложь) и 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, Чопорный, Finans мои таблицы. Если Вы смотрите таблица 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;
    }
}

Как я могу сделать это?

10
задан Community 23 May 2017 в 12:30
поделиться

2 ответа

Когда вы вызываете SaveChanges , Entity Framework выполнит эти операции за одну транзакцию.

Когда вы используете класс TransactionScope , вы говорите: «Я хочу, чтобы то, что выполняется в этом блоке, было инкапсулировано в более крупную транзакцию», что вы действительно и делаете.

Когда вы вызываете Complete в TransactionScope , это то, что выполняет фиксацию всех операций, инкапсулированных в транзакции, определенной TransactionScope .

12
ответ дан 3 December 2019 в 23:49
поделиться

SaveChanges работает внутри транзакции.SaveChanges откатит эту транзакцию и выдаст исключение, если какой-либо из грязных объектов ObjectStateEntry не может быть сохранен.

из документации

1
ответ дан 3 December 2019 в 23:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: