2009-05-07 2 views
9

В MVC, ORM такая же, как модель, или просто способ, которым модель может быть спроектирована? Другими словами, «модели» не заботятся о том, как вы получаете данные, пока вы их получите. Или, например, «модель» означает, что у меня больше нет кучи операторов SQL в моем коде, как в коде за формами? Что-то другое?В MVC, ORM представляет модель?

спасибо.

ответ

8

Нет, ORM - это то, что отображает вашу модель в вашу базу данных и наоборот.

Чтобы разработать, вы должны создать свою модель в своем коде для представления Domain Model (т. Е. Различных элементов вашего проблемного домена), а затем настроить ORM (реляционный сопоставление объектов) для сопоставления этого с базой данных. То есть Создайте операторы SQL, которые будут обновлять базу данных на основе объектов модели, которые вы им предоставляете.

Я могу понять некоторую путаницу, потому что есть инструменты (LINQ to SQL, являющиеся одним), которые фактически генерируют классы моделей в дизайнере для вас. Это не чистый ORM, например NHibernate, где вы предоставляете простые OLM-объекты ORM и некоторую конфигурацию отображения, которую он использует (часто в сочетании с отражением), чтобы автоматически генерировать операторы SQL для базы данных.

0

Модель должна быть отделена от технологии хранилища данных как можно больше. Я подумал, что это довольно хорошая статья, в которой обсуждается взаимосвязь между уровнями доступа к данным, DTO и т. Д. http://msdn.microsoft.com/en-us/magazine/dd263098.aspx

1

Если вы хотите взглянуть на хорошую реалистичную реализацию MVC с ORM, посмотрите на S#arp Architecture, который основан на MS ASP.NET MVC, Nhibernate и шаблоне репозитория.

Смежные вопросы