Visual Studio 2010 を使用し、Entity Framework と SQL Server 2008 R2 を使用しています。テーブルにトリガーがあり、テーブルに1つのレコードを保存すると、他のテーブルの別の列が変更されました。アプリケーションで自動的に変更されたレコードを変更することはできますか?
3 に答える
hereに記載されているように発生する InsertOnSubmit イベントがありますが、それが役立つかどうかはわかりません..
しかし、エンティティを保存/変更するときに発生するさまざまなイベントがありますが、「トリガー」ロジックをコード側に持ち込んでから、おそらくさまざまなエンティティの変更をインテリジェントに処理する必要があります..詳細はこちら:保存時にビジネスロジックを実行する方法変更点
質問のタイトルを詳しく調べた後、更新されたテーブルからデータを取得しようとしているようです..そしてコメントが示唆するように..エンティティ「コンテキスト」の範囲外のものはすべて「リロード」されます。その「読み込み」コードが「変更イベント」処理で処理される場合、これを達成できます..では、そのすべてのロジックをコード層に入れてみませんか? 2つの「エンティティ」を更新してから、それらを一度に保存します..
あなたが求めている答えではありませんが、「トリガー」ロジックをデータベースからアプリケーションコードに移動する必要があると思います。これで問題が解決し、データが正しく更新されていることを確認する単体テストを作成できるようになります。
この質問を検索し、以下のコードを見つけて EF のデータを更新します。
MyModelEntities.Refresh(System.Data.Objects.RefreshMode.StoreWins, TbMyRecord);