Active Record представляет собой шаблон дизайна для доступа к данным ...
В настоящее время существует два основных шаблонов проектирования я, кажется, попадались в отношении доступа к данным: ActiveRecord и Repository Pattern
Active Record
Ваши объекты содержат методы сохраняющиеся свое состояние к БД (или другой механизм живучесть) так:
У вас может быть объект Customer.
Клиентский объект будет иметь кучу таких методов, как Customer.Save() ;, Customer.Get (int id); и другие.
Эти методы не имеют никакого отношения к клиенту в реальном мире. Они действительно касаются инфраструктуры вашего приложения.
Repository Pattern
В хранилище шаблона, ваш объект клиента будет ПОК или тупым предметом. Она имеет только методы и свойства, которые он действительно должен представлять клиента (такие вещи, как имя, адрес электронной почты, списка заказов и т.д.)
Если вы хотите, чтобы упорствовать клиента - вы просто передать его в хранилище
Репозиторий. Сохранение (MyCustomer).
Активный образец записи работает быстро и легко. К сожалению, это создает помехи вашей модели домена с помощью этих методов, которые действительно не имеют ничего общего с Клиентом. Это затрудняет сохранение вашей модели домена с течением времени.
Для многих ситуаций очень удобно использовать шаблон активной записи. Например, если я пишу довольно простое приложение, которое, вероятно, не сильно изменится, я бы, вероятно, запустил SubSonic и сгенерировал активную запись DAL. Я буду кодировать свой бизнес-код в течение 20 минут, и все данные БД позаботятся уже.
Если, с другой стороны, я моделирование особо сложный домен, с высокой чувствительностью к изменениям, я предпочел бы сохранить свои модели предметной области в чистоте, а также осуществлять репозиторную модель с NHibernate или подобным ...
Прошло много времени с тех пор, как я перекатил свой собственный доступ к данным с помощью ADO.Net, и я на самом деле не рекомендую его, так много доступных доступных инструментов доступа к данным.
+1. Очень хорошее объяснение –