2011-07-25 4 views
1

私は、Linq2Sql DataContextを使って行を保存するSave()メソッドを持っています。一連の行更新がアトミック(L2Sデータコンテキスト)ですか?そうでない場合はどうすればできますか?

private void Save(object sender, EventArgs e) 
    { 
     Validate(); 
     selectNumUnitsByPidCdCostRevBindingSource.EndEdit(); 
     var db = new AccountingDataClassesDataContext(true); 
     unitCountDataSet 
      .GetChanges(DataRowState.Modified).Tables[0].Rows 
      .Cast<EomApp1.Formss.Accounting.Data.UnitCountDataSet.SelectNumUnitsByPidCdCostRevRow>().ToList() 
      .ForEach(row => 
      { 
       db.Items.First(item => item.id == row.id).num_units = row.num_units; 
      }); 
     db.SubmitChanges(); 
     Fill(); 
    } 

これは私が今まで本当に複数の更新は単一のバッチ(オールオアナッシング)として発生したことを確認したかったのは初めてである - とのSubmitChanges()の結果がそうなる場合、私はちょうどよく分かりません。

答えが「いいえ」の場合、これをトランザクションに入れる方法は何ですか?

+0

質問に関連していない - しかし、これは実際のコードであると仮定すると - あなたはコンテキストを閉じ/処分ん:

基本的には、これらのドキュメントで説明したように、第3の場合にしていますか?あなたはおそらくusing()ブロックを使うべきです。ありがとう。 –

+0

ありがとう。はい、その現実 - 私はそれが必要だとは思わなかった(それはあなたには言えません) - ここに本当のリソースが漏れているのか、使い捨てを実装するものを使用ブロックに入れるのが適切ですか? –

+1

hmmm ...コネクション管理の観点からは必要ないかもしれないものを見てください。しかし、私はいつも良い練習のために使い捨てを処分します。しかし、私は、漏れがないとあなたは正しいと思います。 –

答えて

関連する問題