私はこのコードを持っています:
DataTable before = GetCustomerTable();
FixCustomerAddresses();
DataTable after = GetCustomerTable();
このメソッドは、テーブルFixCustomerAddresses()
の行を追加または削除しません。Customer
特定の既存の行を変更するだけです。
どの行に変更された列があるかを把握したいと思います。前/後のデータテーブルを比較することでこれを簡単に行う方法はありますか? 以前に StackOverflow でこの質問を見たことがありますが、このシナリオは少し異なり、提案された解決策 (Merge + GetChanges; AsEnumerable().Except
) はうまくいきません。結果DataTable
には、すべての行が含まれるか、行が 2 倍になるか、行がまったく含まれないかのいずれかです。にはDataTable
35000 を超えるレコードが含まれています。
FixCustomerAddresses()
データベースでスクリプトを実行するだけです。そのメソッド内で変更された行を特定する簡単な方法はありません。DataTable には、主キー、いくつかの任意の列、そしてもちろん住所フィールドが含まれています。