ООП дизайн вопрос - отслеживать много похожих вещей

Я разрабатываю слой доступа к данным для приложения на C # / ASP.net, и у меня есть вопрос, касающийся обработки параметров в SQL-запросах.

В тот момент, когда запросу требуется динамически установленный параметр для предложения Where, я должен (1) определить переменную для хранения значения, (2) добавить новый QueryStringParameter в коллекцию SelectParameters SqlDataSource, (3) установить временное значение параметра, когда вызывается метод, содержащий запрос, (4) и задайте значение параметра в событии Selecting объекта SqlDataSource.

У меня есть список из ~ 20 параметров, которые используются в разных запросах, и кажется, что я должен иметь возможность определить каждый из них один раз и просто указать метод, который нужно использовать (и соответствующим образом обновить его значение).

Есть ли хороший способ настроить это?

10.12.2008 16:19:09
1 ОТВЕТ
РЕШЕНИЕ

Мой любимый способ сделать это - настроить источник данных объекта, а затем в свой адаптер таблицы вы можете добавить запросы для всех различных запросов, которые вы хотите выполнить, с различными параметрами, которые вам нужны для различных вариантов выбора. Это дает вам возможность игнорировать фактические параметры и просто использовать класс для вызова методов и передачи соответствующих параметров. Вы также получаете преимущество в том, что вам возвращается объект первого класса или коллекция объектов вместо того, чтобы беспокоиться о типизации каждого из возвращаемых значений. Этот метод не работает, хотя, если возвращаемая схема изменяется для каждого запроса.

Эта статья из блога Скотта Гу, кажется, гораздо глубже рассказывает о том, о чем я говорю, но, честно говоря, я только просмотрел ее:

http://weblogs.asp.net/scottgu/archive/2006/01/15/435498.aspx

3
10.12.2008 16:27:19
Сначала я пытался использовать DataSets и использовать проприетарные инструменты VS, но я просто не хотел, чтобы меня так связывали. У меня также были некоторые проблемы с DataSets, когда дело дошло до наложения полей в моих запросах.
beardog 10.12.2008 18:27:33