2012-06-11 9 views
12

Qual è la differenza tecnica tra SubmitChanges in Linq-to-SQL e SaveChanges in Entity Framework?Qual è la differenza tecnica tra SubmitChanges in Linq-to-SQL e SaveChanges in Entity Framework?

Sappiamo che SubmitChanges è un concetto per la classe DataContext mentre SaveChanges è un metodo di ObjectContext.

Ci sono altre differenze?

Grazie

+2

È praticamente la stessa cosa, solo per due diverse librerie di codice. Da un punto di vista funzionale: entrambi persistono prima determinare tutte le modifiche apportate a un insieme di dati e quindi salvare tali modifiche nuovamente nell'archivio permanente (il database, in genere). –

risposta

26

Da MSDN:

SaveChanges opera all'interno di una transazione. SaveChanges rotolerà di nuovo quella transazione e un'eccezione se uno qualsiasi degli oggetti ObjectStateEntry sporca non può essere persistente

SubmitChanges avvia una transazione e sarà rollback se si verifica un'eccezione durante SubmitChanges è in esecuzione. Tuttavia, ciò non ripristina le modifiche in memoria o monitorate da DataContext; tali modifiche dovranno essere ripristinate manualmente. È possibile iniziare con una nuova istanza di DataContext se si desidera eliminare le modifiche in memoria.

Problemi correlati