Где я должен объявить общий метод GetDataRow в типизированном DataSet? - PullRequest
0 голосов
/ 23 августа 2011

Я конвертирую код отчета, который использует много динамического SQL, отобранного вручную, чтобы использовать динамические наборы данных, но есть много случаев для специальных запросов и вставок. Текущий код использует, например, GetDataRow статический метод в clsFunctions ( да, я знаю, ужас! ), но я хотел бы переместить эту функцию на уровень данных, который я устанавливаю. Сделать это методом расширения для моих типизированных табличных адаптеров приходит мне в голову, потому что они имеют определенное свойство соединения, поэтому я знаю, что я всегда буду использовать то же соединение, что и другой код доступа к данным, но у типизированных табличных адаптеров нет реального базового класса добавить метод, поскольку все они являются производными только от Компонента и генерируют свои «общие» функции.

Где мне разместить метод GetDataRow в слое данных на основе моего типизированного набора данных?

1 Ответ

0 голосов
/ 01 сентября 2011

Поскольку динамические адаптеры таблиц являются частичными классами, просто создайте еще один частичный класс, чтобы добавить свои специальные функции в табличный адаптер.

В этом примере у меня есть набор данных с именем "dsMain" и табличный адаптер для "документа"table.

namespace dsMainTableAdapters
{
    public partial class DocumentTableAdapter
    {
        public dsMain.DocumentRow GetDataRow()
        {
            System.Data.SqlClient.SqlConnection oconn = this.Connection;

            //now Run your custom code on the connection

        }
    }
}

Теперь у вас должен быть новый метод в табличном адаптере с именем «GetDataRow».

Пока вы используете пространство имен EXACT ваших табличных адаптеров набора данных и имя класса EXACT дляВ вашем табличном адаптере вы сможете получить доступ к объекту подключения по своему усмотрению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...