Linq2Sqlのデータコンテキストでの変更を検証するにはどうすればいいですか? SubmitChanges()を呼び出す前に、の前に誰でも教えてください。私が持っている状況は、コンテキストを作成し、複数の操作を実行し、他の処理タスクと一緒に多くの挿入を追加して、サブミットが失敗した場合にロールバックすることです。SubmitChanges()の前にLinq2Sqlを検証する
私がやりたいことは、特定のタスクが完了した後に何らかの "Validate()"コールを行い、ジョブ全体を送信する前に処理できるようにすることです。あなたは私が持っているもの
ChangeSet changes = dataContext.GetChangeSet();
// An IList<Object>
changes.Deletes;
changes.Inserts;
changes.Updates;
を呼び出すことができ、データのコンテキスト内のすべての変更を取得するには
は前.GetChangeSet()メソッドに気づいたことはありません!ありがとう! +1 – StevenMcD
実際に私が行ったアプローチは、テーブルの名前を持つ部分クラスを作成し、検証したいフィールドのOnFooChanging()に検証コードを実装することでした。それは、SubmitChanges()ではなく値が設定されたときにただちに例外をスローするように機能します。私はChangeSetを使用しませんでしたが、それは正しい方向に私を指し、とにかく知っておくと便利です。 –
@Nick - 私はそれについて読んだブログを覚えていないので、これはあなたには役に立たないと感じていますが、複雑な検証シナリオが可能であるため、 "OnChange"ハンドラとは別に検証を続けるのは良い考えです。あるプロパティの検証は、他のプロパティの値に依存します。 – Mark