Comment remplacer une méthode TableAdapter sur une table dans un DataSet?
-
07-07-2019 - |
Question
J'ai actuellement un seul DataSet déclaré qui contient 3 tables. Par souci de cet exemple, nous les appellerons utilisateur, question et réponse.
Sur chacun d’eux, j’ai un TableAdapter avec les différentes méthodes requises, c’est-à-dire. GetData (), Update (), Delete (), etc.
Sur la table de réponses, j'aimerais redéfinir la méthode de mise à jour à partir de TableAdapter pour ajouter des paramètres qui ne font pas partie de la table, mais que je dois transmettre en raison de la nécessité ObjectDataSource.
Comment puis-je redéfinir la méthode Update () sur l'adaptateur de table Answer?
En essayant de garder le projet simple, je ne souhaite pas créer un calque DAL séparé.
La solution
Toute classe TableAdapter
générée par le concepteur et ses membres appropriés marqués comme virtuels - ceci inclut, entre autres, les méthodes Update
et Fill
. La solution consiste simplement à hériter de la classe TableAdapter
générée par le concepteur et à remplacer la méthode Update
en y ajoutant votre code personnalisé.
Vous avez également la possibilité de surcharger la méthode Update
si vous souhaitez modifier la signature de la méthode (paramètre count / types). Vous pouvez le faire soit sur une classe dérivée, soit de façon plus pratique à mon avis, en utilisant une méthode d'extension:
public static void Update(this MyTableAdapter tableAdapter, ... other params ...)
{
// do stuff here
tableAdapter.Update(...);
}