2012-03-28 9 views
5

Mam obiekt POCO, na którym zdefiniowałem niestandardowy konstruktor. Wdrożyłem również domyślny konstruktor, aby Entity Framework mógł skutecznie nawilżyć obiekt, gdy zażądam kopii z bazy danych.Prywatny konstruktor na obiekcie POCO uniemożliwiającym leniwy załadunek

Wydaje się to działać dobrze, ale gdy ustawiam domyślny konstruktor na prywatny (aby wymusić na moim kodzie użycie wersji niestandardowej) i zażądać encji z bazy danych, nie będę w stanie nawigować po powiązanych jednostkach ponieważ wszystkie są zerowe.

To wydaje się być leniwym problemem z ładowaniem, więc mogłem zmienić swoje repozytorium, by ładować potrzebne obiekty, ale zastanawiam się, czy istnieje lepszy sposób na ukrywanie domyślnego konstruktora z kodu klienta, pozwalając leniwej Entity Framework obciążenie?

Odpowiedz

9

Jeśli zdefiniować prywatny konstruktora ty violate requirements do tworzenia POCO Pełnomocnik odpowiedzialny za leniwy załadunku:

Niestandardowa klasa danych musi mieć publiczny lub chroniony konstruktor nie ma parametrów.

Najlepszą opcją jest używanie konstruktora chronionego lub nieużywanie leniwego.

+0

Konstrukcja chroniona działa ładnie, dziękuję. – James

Powiązane problemy