Я задал другой вопрос о вложенных транзакциях, и ответ на мой вопрос научил меня достаточно, чтобы понять, что я плохо задаю вопрос. Итак, вот лучший вопрос.
Как эффективно реализовать точки сохранения SQL Server ( ссылка 1 , ссылка 2 ) с помощью DAL, созданного на основе Entity Framework 4.0?
Мне бы хотелось написать следующий код и заставить его работать так, чтобы SQL Server SAVEPOINTS
public void Bar()
{
using (var ts = new TransactionScope())
{
var ctx = new Context();
DoSomeStuff(ctx);
bool isSuccessful;
using (var spA = new SavePoint("A")) // <-- this object doesn't really exist, I don't think
{
isSuccessful = DoSomeOtherStuff(ctx);
if (isSuccessful)
spA.Complete(); // else rollback bo prior to the beginning of this using block
}
Log(ctx, isSuccessful);
ts.Complete();
}
}
Есть ли такой способ сделать что-нибудь, даже похожее на это, или что-то еще, что хорошо сочетается с EF4? (мы используем собственные POCO-сущности с самоконтролем)