DataSetのテーブルのTableAdapterメソッドをどのようにオーバーライドしますか?
-
07-07-2019 - |
質問
現在、3つのテーブルを含む1つのDataSetが宣言されています。この例のために、それらをユーザー、質問、回答と呼びます。
これらのそれぞれに、必要なさまざまなメソッドを持つTableAdapterがあります。 GetData()、Update()、Delete()など
Answerテーブルで、TableAdapterのUpdateメソッドをオーバーライドして、テーブルの一部ではないパラメーターを追加したいのですが、ObjectDataSourceの要件のために渡す必要があります。
Answer TableAdapterでUpdate()メソッドをオーバーライドするにはどうすればよいですか?
プロジェクトをシンプルに保つために、別のDALレイヤーを作成したくありません。
解決
任意のデザイナーが生成した TableAdapter
クラスの適切なメンバーは、仮想としてマークされます-これには、特に Update
および Fill
メソッドが含まれます。解決策は、デザイナーが生成した TableAdapter
クラスから継承し、 Update
メソッドをオーバーライドして、そこにカスタムコードを追加することです。
メソッドシグネチャ(パラメーターカウント/タイプ)を変更する場合は、 Update
メソッドをオーバーロードするオプションもあります。拡張メソッドを使用して、派生クラスで、またはより便利に私のビューでそれを行うことができます:
public static void Update(this MyTableAdapter tableAdapter, ... other params ...)
{
// do stuff here
tableAdapter.Update(...);
}
所属していません StackOverflow