LINQからSQLへの更新ストアドプロシージャを実行していますが、更新が呼び出された後に影響を受けるレコードを知る必要があります。
dbmlデザイナーを使用してLINQコードを生成しています。
LINQからSQLへの更新ストアドプロシージャを実行していますが、更新が呼び出された後に影響を受けるレコードを知る必要があります。
dbmlデザイナーを使用してLINQコードを生成しています。
DataContext.GetChangeSetを試しましたか?たとえば、これは更新カウントを返します。
linqDbContenxt.GetChangeSet().Updates.Count
私はどの答えも試していませんし、どれが正しい答えかわかりません。@@rowcount
結果セットとして返送しました。
これを行う1つの方法は、更新された行をテーブルに書き出してから、Linq-to-SQLを使用してテーブルを再度読み取ることです。
UPDATE dbo.YourTable
SET columns = values
OUTPUT INSERTED.ID, INSERTED.column1, INSERTED.column2 -- etc. whatever you need
INTO dbo.OutputTable(.....)
もちろん、事前に作成しておく必要がありますdbo.OutputTable
。この操作が実行されると、出力テーブルには更新された値が含まれます。そのテーブルは、Linq-to-SQLの通常のテーブルと同じように読み取ることができます。
dbml内のオブジェクトタイプごとに別の部分クラスを作成し、OnCreatedなどのさまざまな公開メソッドにフックできます。更新時に独自のメソッドを作成し、実際のオブジェクトで発生したアイテムの変更、作成、または削除のログを保持できます。