2012-06-11 11 views
12

Linq-to-SQLのSubmitChangesとEntity FrameworkのSaveChangesの技術的な違いは何ですか?Linq-to-SQLのSubmitChangesとEntity FrameworkのSaveChangesの技術的な違いは何ですか?

SubmitChangesDataContextクラスのコンセプトであり、SaveChangesObjectContextのメソッドです。

他に違いはありますか?

おかげMSDNから

+2

基本的に同じことです.2つの異なるコードライブラリの場合と同じです。機能的な観点から、両方とも、データセットに対して行ったすべての変更を最初に確定し、その変更を永続ストア(通常はデータベース)に保存し直します。 –

答えて

26

のSaveChangesは、トランザクション内で動作します。 SaveChangesメソッドは、そのトランザクションをロールバックし、汚れたObjectStateEntryオブジェクトのいずれかがトランザクションを開始してのSubmitChangesの実行中に例外が発生した場合にロールバックされます

でSubmitChangesを持続することができない場合に例外をスローします。ただし、これはメモリ内の変更やDataContextによって追跡される変更をロールバックしません。これらの変更は手動でロールバックする必要があります。メモリ内の変更を破棄する場合は、DataContextの新しいインスタンスから開始することができます。

関連する問題