互いにほぼ正確なクローンである2つのテーブルがあります(同一の列、主キーとして設定された異なる列のみ)。基本的に、2番目のテーブルは最初のテーブルの履歴を保持するためのものです。私がする必要があるのは、ユーザーがテーブル1のレコードを更新するときに、そのレコードの元のコピーをテーブル2に挿入する必要があるということです。
LinqDataSourceオブジェクトを使用してLinqDataSource_Updating(object sender, LinqDataSourceUpdateEventArgs e)
イベントを利用しているので、アクセスできe.OriginalObject
、テーブル2に元の行を挿入するのに最適です。私の問題は、約50あるため、すべてのプロパティを手動で設定する必要がないことです。そのうち、Reflectionを使用したいのですが、適切に処理する方法がわかりません。
次のコードを検討してください。
INSTRUMENT_DATA_SHEET _original = (INSTRUMENT_DATA_SHEET)e.OriginalObject;
INSTRUMENT_DATA_SHEET_HISTORY _history = new INSTRUMENT_DATA_SHEET_HISTORY();
_original
すべての'sプロパティ値を'sにコピーするにはどうすればよい_history
ですか?この質問の解決策を使用してみましたが、うまくいきません。エラーが発生します:
Property DATE has an incompatible type in E_and_I.INSTRUMENT_DATA_SHEET_HISTORY
私の推測では、DATE
列がテーブル2の主キーの一部であるが、テーブル1の一部ではないためです。前述したように、2つのテーブルの唯一の違いは主キーです。ここにそれらはあなたの参照のためです: