Udostępnij za pośrednictwem


Tworzenie modelu

Model EF przechowuje szczegółowe informacje o sposobie mapowania klas aplikacji i właściwości na tabele i kolumny bazy danych. Istnieją dwa główne sposoby tworzenia modelu EF:

  • Używanie funkcji Code First: deweloper pisze kod w celu określenia modelu. Platforma EF generuje modele i mapowania w czasie wykonywania na podstawie klas jednostek i dodatkowej konfiguracji modelu dostarczonej przez dewelopera.

  • Za pomocą projektanta EF: deweloper rysuje pola i wiersze, aby określić model przy użyciu projektanta EF. Wynikowy model jest przechowywany jako XML w pliku z rozszerzeniem EDMX. Obiekty domeny aplikacji są zwykle generowane automatycznie na podstawie modelu koncepcyjnego.

Przepływy pracy EF

Oba te podejścia mogą służyć do określania celu istniejącej bazy danych lub utworzenia nowej bazy danych, co powoduje utworzenie 4 różnych przepływów pracy. Dowiedz się, który z nich jest najlepszy dla Ciebie:

Chcę tylko napisać kod... Chcę użyć projektanta...
Tworzysz nową bazę danych Użyj funkcji Code First , aby zdefiniować model w kodzie, a następnie wygenerować bazę danych. Użyj najpierw modelu , aby zdefiniować model przy użyciu pól i wierszy, a następnie wygenerować bazę danych.
Chcę uzyskać dostęp do istniejącej bazy danych Użyj funkcji Code First , aby utworzyć model oparty na kodzie, który jest mapowy na istniejącą bazę danych. Użyj funkcji Database First , aby utworzyć pola i model linii mapujący na istniejącą bazę danych.

Obejrzyj film: Jakiego przepływu pracy ef należy użyć?

W tym krótkim filmie wyjaśniono różnice i sposób znajdowania tego, który jest odpowiedni dla Ciebie.

Prezentowane przez: Rowan Miller

Która miniatura przepływu pracy WMV | MP4 | WMV (ZIP)

Jeśli po obejrzeniu filmu nadal nie czujesz się pewnie, decydując, czy chcesz użyć projektanta EF lub Code First, naucz się obu!

Spojrzenie pod kapturem

Niezależnie od tego, czy używasz funkcji Code First, czy EF Designer, model EF zawsze ma kilka składników:

  • Obiekty domeny lub typy jednostek aplikacji. Jest to często nazywane warstwą obiektu

  • Model koncepcyjny składający się z typów jednostek i relacji specyficznych dla domeny, opisany przy użyciu modelu danych jednostki. Ta warstwa jest często nazywana literą "C" jako koncepcyjną.

  • Model przechowywania reprezentujący tabele, kolumny i relacje zgodnie z definicją w bazie danych. Ta warstwa jest często nazywana z późniejszej literą "S" od magazynowania.

  • Mapowanie między modelem koncepcyjnym a schematem bazy danych. To mapowanie jest często określane jako mapowanie "C-S".

Silnik mapowania EF korzysta z mapowania "C-S", aby przekształcić operacje w stosunku do jednostek, takie jak tworzenie, odczytywanie, aktualizowanie i usuwanie, w równoważne operacje względem tabel w bazie danych.

Mapowanie między modelem koncepcyjnym a obiektami aplikacji jest często określane jako mapowanie "O-C". W porównaniu z mapowaniem "C-S" mapowanie "O-C" jest niejawne i jeden do jednego: jednostki, właściwości i relacje zdefiniowane w modelu koncepcyjnym są wymagane do dopasowania kształtów i typów obiektów platformy .NET. Od EF4 i poza nią warstwa obiektów może składać się z prostych obiektów z właściwościami bez żadnych zależności od ef. Są one zwykle określane jako Plain-Old CLR Objects (POCO) i mapowanie typów i właściwości jest wykonywane na podstawie konwencji dopasowywania nazw. Wcześniej w programie EF 3.5 istniały określone ograniczenia dla warstwy obiektu, takie jak jednostki, które muszą pochodzić z klasy EntityObject i muszą mieć atrybuty EF w celu zaimplementowania mapowania "O-C".