Создание ORM с наборами данных - PullRequest
0 голосов
/ 19 сентября 2009

DataSet не ORM, но возможно создать ORM с набором данных http://www.15seconds.com/issue/080103.htm

Такая статья встречается очень редко, поскольку люди, похоже, выступают против наборов данных и ORM, так что любой другой пример?

Ответы [ 2 ]

2 голосов
/ 19 сентября 2009

ORM принципиально отличается от DataSets.

DataSets - это копия 1: 1 ваших таблиц реляционных баз данных в памяти; DataSet содержит несколько DataTables, каждый из которых состоит из столбцов и строк. Это более или менее «реляционная база данных в памяти» - без картирования, без перевода - просто копия 1: 1.

Все хорошо, если вам удобно работать в этом стиле столбца / строки (который работает во многих случаях).

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

Вы больше не имеете дело с таблицей клиентов, но вместо этого вы имеете дело с объектами клиентов, списками клиентов и так далее. Вы программируете против «нормального» бизнес-объекта, и ORM позаботится о его сопоставлении с таблицами, столбцами и строками, когда вы сохраните его.

Поскольку DataSet является более или менее копией вашей базы данных 1: 1, теоретически вы можете поместить ORM поверх этого, чтобы получить объекты из нее - но какой в ​​этом смысл? Зачем вообще идти по пути наличия DataSet, если вы все равно хотите использовать ORM? Я не вижу никакой выгоды в таком подходе ...

Объясните мне (и другим Stackoverflowers), почему вы хотите использовать DataSets и ORM? Какова ваша цель, какова ваша идея / подход ??

Так что на самом деле речь идет о выборе между DataSets или ORM - либо будет работать, либо обслуживает другой стиль программирования и архитектуры. Выберите свою и будьте счастливы с этим.

Марк

0 голосов
/ 19 сентября 2009

Я согласен с комментариями marc_s.

Статья, на которую вы ссылаетесь, выглядит несколько устаревшей. Он пытается использовать набор данных в качестве инструмента ORM, в то время как доступность инструментов ORM была более ограниченной, чем сейчас.

Я бы порекомендовал вам взглянуть на Entity Framework (ORM), он поддерживает шаблон активной записи, а также имеет инструменты пользовательского интерфейса, похожие на наборы данных. Если все, что вы делаете, это автоматически генерируете свои сущности на основе вашей базы данных, вы можете не заметить большой разницы от использования наборов данных.

http://msdn.microsoft.com/en-us/library/aa697427(VS.80).aspx

...