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.

È stato utile?

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(...);
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top