Как переопределить метод TableAdapter для таблицы в наборе данных?

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

Вопрос

В настоящее время у меня есть один объявленный 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(...);
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top