Я предполагал, что при использовании DataContext следующим образом я получу автоматический откат:
ОБНОВЛЕНИЕ Я на самом деле дважды звонил SubmitChanges
, но вопрос по-прежнему актуален.
public void UpdateUser(User user)
{
using (var context = new UserDataContext())
{
//update stuff.
context.SubmitChanges();
//update stuff.
context.SubmitChanges();
}
}
Когда что-то идет не так, отката нет.
Вместо этого для обеспечения отката я реализовал следующее:
public void UpdateUser(User user)
{
var context = new UserDataContext();
try
{
context.Connection.Open();
context.Transaction = context.Connection.BeginTransaction();
//update stuff.
context.SubmitChanges();
context.Transaction.Commit();
}
catch (Exception e)
{
context.Transaction.Rollback();
throw;
}
finally
{
context.Dispose();
}
}
что на много больше сантехники, чем я хочу. Есть ли лучший способ указать DataContext, что вы хотите автоматический откат?