c# - automatic datacontext transaction management -


i assumed when using datacontext in following fashion automatic rollback:

update called submitchanges twice question still applies.

public void updateuser(user user)     {         using (var context = new userdatacontext())         {             //update stuff.             context.submitchanges();              //update stuff.             context.submitchanges();         }     } 

when goes wrong there no rollback.

instead, provide rollback i've implemented following:

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;         }                 {             context.dispose();         }     } 

which alot more plumbing want. there better way indicate datacontext want automatic rollback?

if not inside external transaction (e.g. transactionscope), submitchanges starts transaction , should automatically rollback if exception occurs.

suggest post actual code causing problem , exception occurs.

if performing multiple submitchanges , want them atomic, wrap in transactionscope:

using (transactionscope ts = new transactionscope()) {     blah1.submitchanges()      blah2.submitchanges();      ts.commit(); } 

Comments

Popular posts from this blog

apache - Add omitted ? to URLs -

redirect - bbPress Forum - rewrite to wwww.mysite prohibits login -

php - How can I stop spam on my custom forum/blog? -