Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / А зачем он нужен, этот DataSet? / 6 сообщений из 6, страница 1 из 1
03.02.2005, 15:55
    #32899590
zz
zz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А зачем он нужен, этот DataSet?
Все никак не получается у меня понять скрытого великого смысла Dataset'a в Windows-приложениях.
Если сравнивать ADO и ADO.NET, то можно легко понять, что аналог АДОшному рекордсету - это DataTable. DataTable имеет свой собственный DataAdapter, отвечающий за считывание/изменение данных. А в DataSet группируются несколько DataTable, навешиваются Relations и все такое. Вопрос: зачем это надо на практике?

1. Если есть большая таблица с короткими записями и к ней справочная - с длинными записями (напр, Заказы (КодЗаказа, КодКлиента) и Клиенты(КодКлиента, Имя, Телефон, Адрес, и т.д.). Чтобы не тащить много данных, можно считать отдельно одну табл, отдельно - вторую и проджойнить их уже на клиенте через ParentRow.
Однако такие случаи не очень-то распространены и создавать ради них DataSet - сомнительное удовольствие.

2. Контроль за целостностью вводимых данных (ограничение внешнего ключа). Однако в подаляющем большинстве случаев (если не во всех) пользователь не может самостоятельно создать ключ, и, следовательно, не может нарушить целостность. К тому же контроль за целостностью вполне может осуществлять БД.

Что ж еще-то? Почему нельзя ограничиться DataTable?
К тому же, в случае отсоединенного набора, чем больший объем информации мы стащим на клиента, тем более вероятны конфликты обновления. Не лучше ли получать данные маленькими "порциями" в DataTable и как можно скорее их обновлять?

Объясните, пожалуйста.
...
Рейтинг: 0 / 0
03.02.2005, 16:45
    #32899768
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А зачем он нужен, этот DataSet?
Одна из задумок была такой, что клиент загрузил датасет на компьютер, уехал в командировку, поработал, приехал, залил с изменениями на сервер автоматом и всё.

Хотя это всего лишь один из возможных подходов.
...
Рейтинг: 0 / 0
03.02.2005, 16:57
    #32899799
zz
zz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А зачем он нужен, этот DataSet?
Ну ничего себе. Это хорошо, когда есть уверенность, что больше никто с этми данными не работает. А иначе - конфликты обновления. Или - кто последний, тот и прав?
Правильно ли я вас понял:
В случае обыкновенного многопользовательского клиент-серверного приложения можно (или даже нужно, т.к. создание и поддержка DataSet отжирает куда больше ресурсов, чем DataTable) использовать DataTable?
...
Рейтинг: 0 / 0
03.02.2005, 17:00
    #32899807
Роман Дынник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А зачем он нужен, этот DataSet?
А типизированный DataTable можно сделать?
Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
03.02.2005, 17:00
    #32899809
Роман Дынник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А зачем он нужен, этот DataSet?
одна из задумок была сделать из DataSet бизнес-объект.
Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
06.02.2005, 17:50
    #32903101
Kulibin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А зачем он нужен, этот DataSet?
на счёт кто последний тот и прав, не много не правильно.
по-умолчанию скорее всего кто первый тот и прав (так датаадаптер работает).
а вообеще датасет очень удобная штука относительно него всякие гриды обычно заполняются, кроме того это действительно отсоединённая бд (обычно через вебсервисы получаем данные работаем с ними как можно дольше, что бы узкий канал связи не напрягать).
а вообще-то по этому поводу много статей примеров.
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / А зачем он нужен, этот DataSet? / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]