0

LINQからSQLへの更新ストアドプロシージャを実行していますが、更新が呼び出された後に影響を受けるレコードを知る必要があります。

dbmlデザイナーを使用してLINQコードを生成しています。

4

4 に答える 4

1

DataContext.GetChangeSetを試しましたか?たとえば、これは更新カウントを返します。

linqDbContenxt.GetChangeSet().Updates.Count
于 2010-08-18T06:08:49.927 に答える
1

私はどの答えも試していませんし、どれが正しい答えかわかりません。@@rowcount結果セットとして返送しました。

于 2010-09-15T06:10:20.150 に答える
0

これを行う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の通常のテーブルと同じように読み取ることができます。

于 2010-08-18T06:09:49.700 に答える
0

dbml内のオブジェクトタイプごとに別の部分クラスを作成し、OnCreatedなどのさまざまな公開メソッドにフックできます。更新時に独自のメソッドを作成し、実際のオブジェクトで発生したアイテムの変更、作成、または削除のログを保持できます。

于 2010-08-18T06:10:40.930 に答える