Come sovrascrivere un metodo TableAdapter su una tabella in un DataSet?
-
07-07-2019 - |
Domanda
Attualmente ho dichiarato un singolo DataSet che contiene 3 tabelle. Per questo esempio, li chiameremo Utente, Domanda e Risposta.
Su ognuno di questi ho un TableAdapter con i vari metodi richiesti, ad es. GetData (), Update (), Delete () ecc.
Nella tabella delle risposte vorrei sovrascrivere il metodo di aggiornamento da TableAdapter per aggiungere alcuni parametri che non fanno parte della tabella, ma devo passare a causa del requisito ObjectDataSource.
Come posso fare per sovrascrivere il metodo Update () su Answer TableAdapter?
Nel tentativo di semplificare il progetto, non voglio creare un livello DAL separato.
Soluzione
Qualsiasi classe TableAdapter
generata dal designer i suoi membri appropriati contrassegnati come virtuali - questo include tra l'altro il metodo Aggiorna
e Fill
. Inoltre, la soluzione è semplicemente ereditare dalla classe TableAdapter
generata dal designer e sovrascrivere il metodo Aggiorna
, aggiungendo qui il tuo codice personalizzato.
Hai anche la possibilità di sovraccaricare il metodo Aggiorna
, se vuoi cambiare la firma del metodo (conteggio parametri / tipi). Potresti farlo su una classe derivata, o più convenientemente a mio avviso, usando un metodo di estensione:
public static void Update(this MyTableAdapter tableAdapter, ... other params ...)
{
// do stuff here
tableAdapter.Update(...);
}