Active Record jest wzorzec projektowania dla dostępu do danych ...
Obecnie istnieją dwa główne wzorce projektowe wydaje mi się natknąć w sprawie dostępu do danych: ActiveRecord a Repository wzorek
Active Record
Twoje obiekty zawierają metody utrzymującego swój stan do DB (lub inny mechanizm wytrwałość) tak:
Być może obiekt klienta.
Obiekt klienta będzie miał kilka metod takich jak Customer.Save() ;, Customer.Get (int id); i inni.
Te metody nie mają nic wspólnego z klientem w realnym świecie. Chodzi w rzeczywistości o infrastrukturę twojej aplikacji.
Repository Wzór
repozytorium wzór Twój obiekt klient byłby POCO lub niemy przedmiot. Ma tylko metody i właściwości, że naprawdę potrzebuje do reprezentowania klienta (rzeczy takie jak nazwisko, adres e-mail, listy zamówień, etc.)
Gdy chcesz utrzymywać klienta - wystarczy przekazać je do repozytorium
Repository.Save (MyCustomer).
Aktywny wzór rekordu jest szybki i łatwy w użyciu. Niestety, nie zaśmieca twojego modelu domeny tymi metodami, które tak naprawdę nie mają nic wspólnego z klientem. To sprawia, że nieco trudniej jest utrzymać swój model domeny w czasie.
Dla wielu sytuacji bardzo dobrym rozwiązaniem jest użycie aktywnego wzoru rekordu. Na przykład - jeśli piszę dość prostą aplikację, która prawdopodobnie nie zmieni się zbytnio, prawdopodobnie wystrzeliłbym SubSonic i wygenerowałbym aktywny DAL. Będę kodował mój kod biznesowy w ciągu 20 minut, a wszystkie sprawy DB zostaną już załatwione.
Jeśli, z drugiej strony, jestem modelowania szczególnie zespolonej, o wysokiej podatności na zmiany, wolałbym zachować moje model domeny czyste i wdrożyć repozytorium wzór z NHibernate lub podobnym ...
Minęło dużo czasu odkąd zastosowałem własny dostęp do danych za pomocą ADO.Net i naprawdę nie polecam go, ponieważ jest dostępnych tak wiele świetnych narzędzi dostępu do danych.
+1. Bardzo dobre wyjaśnienie –