DataSetのテーブルのTableAdapterメソッドをどのようにオーバーライドしますか?

StackOverflow https://stackoverflow.com/questions/1434968

質問

現在、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(...);
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top