Как переопределить метод TableAdapter для таблицы в наборе данных?
-
07-07-2019 - |
Вопрос
В настоящее время у меня есть один объявленный DataSet, который содержит 3 таблицы. Ради этого примера мы будем называть их Пользователь, Вопрос и Ответ.
На каждом из них у меня есть TableAdapter с различными необходимыми методами, т.е. GetData (), Update (), Delete () и т. Д.
В таблице ответов я хотел бы переопределить метод обновления из TableAdapter, чтобы добавить некоторые параметры, которые не являются частью таблицы, но мне нужно передать из-за требования ObjectDataSource. Р>
Как мне переопределить метод Update () в адаптере таблиц ответов?
В попытке сохранить простоту проекта я не хочу создавать отдельный слой DAL.
Решение
Любой созданный дизайнером TableAdapter
его соответствующие члены, помеченные как виртуальные, включают в себя, среди прочего, метод Update
и Fill
. Хемче, решение состоит в том, чтобы просто унаследовать от сгенерированного дизайнером класса TableAdapter
и переопределить метод Update
, добавив туда свой собственный код.
У вас также есть возможность перегрузить метод Update
, если вы хотите изменить сигнатуру метода (число параметров / типы). Вы можете сделать это либо в производном классе, либо, на мой взгляд, более удобно, используя метод расширения:
public static void Update(this MyTableAdapter tableAdapter, ... other params ...)
{
// do stuff here
tableAdapter.Update(...);
}