Powiel możliwe:
What are the benefits of Persistence Ignorance?Nie rozumiem punkt niezależności trwałości
Po pewnym czasie, a niektóre pytania próbuje dowiedzieć się, Entity Framework, Doszedłem do wniosek, że po prostu nie rozumiem, czym jest uporczywość w ignorancji.
Jak najlepiej jak mogę powiedzieć, praktyczna różnica między używaniem utrwalania świadomy przedmioty i te oporność-ignorant jest to, że jeden przyzwyczaja coś
Person p = Person.Load(id);
p.Active = false;
p.Save();
a drugi służy wzdłuż linii
using (var context = new MyContext())
{
Person p = context.Persons.Single(x => x.ID == id);
p.Active = false;
context.SaveChanges();
}
W pierwszym przypadku mogę zwrócić p
i zadzwonić pod numer Save()
w pewnym późniejszym momencie. W tym ostatnim mogę zwrócić p
, ale muszę go zapisać w nowym MyContext()
, aby go zapisać. W pierwszym przypadku, zakładając, że osoba dziedziczy Load() i Save() z jakiegoś obiektu bazowego, który faktycznie obsługuje logikę bazy danych, jeśli chciałem zmienić trwałość, wymagałoby to po prostu zmiany tego obiektu podstawowego (lub nawet po prostu mieć IPersistent
interfejs, który wiele klas bazowych może zaimplementować, aby uzyskać dostęp do wielu sklepów). W tym drugim przypadku musiałbym zmienić każde wystąpienie MyContext
, gdyby warstwa trwałości uległa zmianie, a wykonanie fragmentarycznych czynności byłoby ohydnie skomplikowane.
Mam wrażenie, że upór, ignorancja jest dobrą rzeczą. Po prostu nie mogę zrozumieć, dlaczego. Wydaje się, że dużo trudniej jest skonfigurować, pracować, zmienić hurt i zmienić fragmentarycznie, bez żadnej przewagi w tej komplikacji. Czy brakuje mi czegoś ważnego, czy też całe moje rozumienie tego, co świadome wytrwałości/ignorancji oznacza wadliwe?
Oprócz Trwałość podmioty niedouczonych, należy również streszczenie dala Twój ORM. Typową metodą jest [Wzór repozytorium] (http://martinfowler.com/eaaCatalog/repository.html). – jrummell
@DavidHall, nie sądzę, że to duplikat. Przynajmniej po przeczytaniu odpowiedzi na drugie pytanie wciąż nie rozumiem, dlaczego * odpowiednio wyabstrahowany * obiekt świadomy uporu jest lepszy niż uporczywy uporczywy obiekt. – Bobson