Как исп. TableAdapter-ы с ХП возвращ. разные наборы полей
От: SlavaTT  
Дата: 02.08.06 14:13
Оценка:
Прочел красивую статью буржуя Scot-a Mitchela про то как делать правильно доступ к данным через типизир. DataSet-ы но не все оказалось так красиво на практике )

Есть БД доступ к которой делается через хранимые процедуры.
Процедуры в основном используют ветвление внутри себя в зависимости от параметров или просто сходные по типу процедуру возвращают различные наборы полей из связанных таблиц(ы) .

Например: sp_GetContact — вовзращает список контактов из таблицы Contacts при этом выбираются поля нужные только для отображения этого списка на ASP странице, есть еще sp_GetContactPKId, она возвращает один контакт и все его поля. По идее хорошо было бы создать ContactsTableAdapter который будет возвращать один бизнес обьект ContactDataTable и в нем указать эти две .ранимые процедуры, но XML схема получается разная. А создавать отдельные TableAdapter-ы типа ContactListTableADapter и ContactDisplayTableAdapter для каждого набора полей не хочется.
Получается надо изменять процедуру(ы) так что-бы они возвращали один набор полей ?
БД не нормализована и например в таблице Contacts — 60+ полей и если их возвращать всегда все — это может сказаться на производительности ?
Можно вроде создать одну суммарную схему на 2 процедуры, но тогда часть свойств ContactRow будут не использоваться если вызываешь одну из процедур и еще появляются проблемы с contraint-ами в DataSet — вообщем тоже не лучший вариант.
Как быть ?

В DataSet еще есть возможность определять связи между таблицами но по ней мало инф.


Спасибо,

Слава
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.