12 messaggi dal 04 dicembre 2009
Ciao,

quale è il metodo più corretto di eseguire una serie di insert correlate con Linq to Sql in una sola transazione?

Di seguito un codice di esempio di come faccio io adesso.

            if (db.Connection.State != System.Data.ConnectionState.Open)
                db.Connection.Open();

            db.Transaction = db.Connection.BeginTransaction();

            try
            {
                db.Messages.InsertOnSubmit(newMessage);
                db.SubmitChanges(); //Salvo i dati del messaggio e recupero l'ID che mi servirà per i dati successivi
                db.Attachments.Insert(newMessage.MessageId, attachments);
                db.DistributionLists.Insert(newMessage.MessageId, newMessage.ApplicationId, distributionLists);
                db.SubmitChanges(); //Salvo i dati delle 2 insert precedenti
                db.Transaction.Commit();
                db.Connection.Close();
            }
            catch (Exception)
            {
                db.Transaction.Rollback();
                if (db.Connection.State == System.Data.ConnectionState.Open)
                    db.Connection.Close();
                throw;
            }


Grazie in anticipo per la risposta.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.