Beniamin Zaborski's Blog (BeniaminZaborski.com)

23 Czerwiec 2010

Prośby zostały wysłuchane, czyli POCO w Entity Framework.

Filed under: Codzienne dylematy modelarza — Tagi: , , — Beniamin Zaborski @ 23:13

Jakiś czas temu pisałem na blogu czemu nie lubię Entity Framework, narzekałem i wytykałem błędy (zresztą nie byłem w tym sam). W tym momencie muszę przyznać, że Microsoft stanął na wysokości zadania i “naprawił” to co mnie najbardziej irytowało w Entity Framework. Tak – teraz encje są obiektami POCO, a sam Entity Framework ma cechy O/R Mappera w stylu persistence ignorant. Wszystko jest w najlepszym porządku. Dla tych, którzy nie widzą problemu w używaniu O/R Mappera, który nie jest persistence ignorant mam dobrą wiadomość, bo nadal EF może działać po “staremu” i domyślnie tak działa.

Aby jednak móc skorzystać z tego cudu jakim jest persistence ignorant w EF, w Visual Studio należy doinstalować odpowiedni generator. Ta operacja w Visual Studio 2010 jest dziecinnie prosta, gdyż wystarczy po utworzeniu modelu EF z menu kontekstowego designera encji wybrać “Add Code Generation Item…” -> Online Templates -> Templates -> Database -> “ADO.NET C# POCO Entity Generator”. Po zainstalowaniu dodatku zobaczymy w naszym solution pliki szablonów *.tt oraz związany z nimi custom tool TextTemplatingFileGenerator.

Dzięki szablonom i generatorowi możemy się cieszyć encjami POCO w EF. Obiekty encji teraz to czyste obiekty, które nie dziedziczą już ze specyficznej klasy bazowej jak to w “starym” EF było. Dodać należy jeszcze tylko tyle, że działa tu lazy loading oraz change tracking.

Jest dobrze, ale czy nie może być lepiej? Zawsze może! W związku z tym zawsze można wprowadzić modyfikacje do szablonów generatora, aby przystosować generowany kod jeszcze bardziej do własnych potrzeb. Zachęcam do zapoznania się z POCO Entity Generator dla Entity Framework. Hmm … może to właśnie EF kiedyś zastąpi NH w moich projektach (?).

Dodaj komentarz »

Brak komentarzy.

Kanał RSS z komentarzami do tego wpisu. Adres TrackBack

Dodaj komentarz

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Zmień )

Twitter picture

You are commenting using your Twitter account. Log Out / Zmień )

Facebook photo

You are commenting using your Facebook account. Log Out / Zmień )

Connecting to %s

Theme: Shocking Blue Green. Blog na WordPress.com.

Follow

Otrzymuj każdy nowy wpis na swoją skrzynkę e-mail.