Набор данных против возвращения данных - PullRequest
1 голос
/ 15 августа 2010

Я создал много хранимых процедур в своем приложении, которые возвращают результат запроса в объекте с данными. Я никогда не использую набор данных. Зачем мне когда-либо использовать набор данных вместо простого возврата результата запроса в качестве объекта данных?

Ответы [ 3 ]

1 голос
/ 15 августа 2010

DataSet может содержать более одной DataTable.Таким образом, основной причиной было бы, если вы написали хранимый процесс, который возвращал несколько наборов результатов.

Еще лучший способ - использовать ORM, такой как NHibernate, и возвращать объекты модели вместо DataTable.

1 голос
/ 15 августа 2010

Если вы все еще осваиваете ADO.NET, в идеале вам следует обратить внимание на получение результатов ваших запросов в DataReaders, а не в DataTables.Они намного эффективнее.Если бы я использовал ADO.NET и хотел вернуть несколько rcordsets из процедуры, я бы использовал метод NextResult () DataReader для их просмотра.

Как указывает mpenrow, наборы данных являются контейнерами для DataTablesи может содержать несколько таблиц.Одна из причин, по которой вы бы использовали набор данных, - это создание отношений между таблицами данных, если, например, вы хотите отобразить записи Master / Child, например http://www.mikesdotnetting.com/Article/57/Displaying-One-To-Many-Relationships-with-Nested-Repeaters.

Как уже говорили другие, ORM, такие как Linq To Sql, Entity Framework или nHibernate - путь, который в конечном счете пойдет.Все они используют DataReaders для заполнения объектов модели.

0 голосов
/ 15 августа 2010

Ни то, ни другое.Я всегда возвращаю строго типизированные объекты.Использование DataSets или DataTables вообще указывает программисту, не понимающему использование объектной ориентации.Это совершенно устаревшая технология.

Посмотрите на более современные подходы к обработке данных.Вещи, разработанные за последние 20 лет (то есть как долго работают O / R-картографы).

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