Я разрабатываю компонент, в котором я использую Entity Framework 4.0.Несоответствие EntityFramework и TransactionScope
В конкретном сценарии мне нужно использовать TransactionScope
.
try
{
using (TransactionScope t = new TransactionScope())
{
myEntity.MyObjectsOne.Add(new MyObjectOne());
myEntity.MyObjectsTwo.Add(new MyObjectTwo());
myEntity.SaveChanges();
throw new Exception();
t.Complete();
}
}
catch (Exception e)
{
// What should I do?
}
Когда операция терпит неудачу, и, таким образом, оно не завершено, MyEntity все равно будет отражать изменения, сделанные т.е. добавление MyObjectOne
и MyObjectTwo
.
В таком случае, что является лучшей практикой, во избежание несогласованности?
Каков срок службы контекста? – ken2k
Тот же экземпляр контекста по-прежнему будет использоваться после этого процесса. – JEPAAB