Я задал другой вопрос о вложенных транзакциях, и ответ на мой вопрос дал мне достаточно знаний, чтобы помочь мне понимаю, что я плохо задал вопрос. Так вот вопрос лучше.
Как эффективно реализовать точки сохранения SQL Server (ссылка 1, ссылка 2) с DAL, построенным на Entity Framework 4.0?
Я ХОЧУ написать следующий код и заставить его работать так, чтобы SAVEPOINTS SQL Server
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 с самостоятельным отслеживанием)