Omówienie platformy EF Core

Ukończone

Entity Framework Core (EF Core) to maper obiektowo-relacyjny (ORM). OrM zapewnia warstwę między modelem domeny implementowym w kodzie a bazą danych. EF Core to interfejs API dostępu do danych, który umożliwia interakcję z bazą danych przy użyciu zwykłych starych obiektów języka COMMON Runtime Language (CLR) platformy .NET (POR) i silnie typizowanej składni zapytań zintegrowanych języków (LINQ).

W programie EF Core baza danych jest abstrakcjami obiektów POC Platformy .NET. Program EF Core obsługuje bezpośrednią interakcję z bazową bazą danych. W przypadku korzystania z tego interfejsu API możesz poświęcać mniej czasu na tłumaczenie żądań do i z bazy danych oraz pisanie bazy danych SQL oraz więcej czasu na skupienie się na ważnej logice biznesowej.

Za pomocą programu EF Core można wykonywać następujące czynności:

  • Załaduj dane jako obiekty (jednostki) języka C#.
  • Dodawanie, modyfikowanie i usuwanie danych przez wywoływanie metod w jednostkach.
  • Mapowanie wielu tabel bazy danych na jedną jednostkę języka C#.
  • Obsługa problemów ze współbieżnością, które występują, gdy wielu użytkowników jednocześnie próbuje zaktualizować ten sam rekord.
  • Użyj silnie typizowanej składni LINQ (System.Linq), aby wykonywać zapytania dotyczące bazy danych.
  • Dostęp do wielu baz danych, w tym SQL Server, SQLite, Azure Cosmos DB, PostgreSQL, MySQL i nie tylko.
  • Skompiluj model domeny z istniejącej bazy danych.
  • Zarządzaj schematem bazy danych na podstawie modelu domeny.
  • Zatwierdź zmiany w złożonych, głębokich lub szerokich wykresach obiektów powiązanych jednostek przy użyciu pojedynczego wywołania metody.

Przegląd architektury technologii EF Core

Na poniższym diagramie przedstawiono architekturę platformy EF Core:

Diagram przedstawiający składniki i procesy w architekturze platformy Entity Framework Core.

DbContext to specjalna klasa, która reprezentuje jednostkę pracy. DbContext Udostępnia metody, których można użyć do konfigurowania opcji, parametrów połączenia, rejestrowania i modelu używanego do mapowania domeny na bazę danych.

Klasy pochodzące z klasy DbContext:

  • Reprezentują aktywną sesję z bazą danych.
  • Zapisują wystąpienia jednostek i wysyłają względem nich zapytania.
  • Uwzględnij właściwości typu DbSet<T> reprezentujące tabele w bazie danych.

Dostawca technologii EF Core tłumaczy zmiany grafu obiektów na język SQL.

Dostawca bazy danych:

  • To biblioteka wtyczek przeznaczona dla określonego aparatu bazy danych, takiego jak SQL Server, Azure Cosmos DB lub PostgreSQL.
  • Tłumaczy wywołania metod i zapytania LINQ do natywnego dialektu SQL bazy danych.
  • rozszerza technologię EF Core w celu udostępnienia funkcji unikatowych dla danego aparatu bazy danych.

Zarządzanie schematami baz danych

Program EF Core zapewnia dwa podstawowe sposoby synchronizacji modelu EF Core i schematu bazy danych:

  • Migracje (model jako źródło prawdy)
  • Inżynieria odwrotna (baza danych jako źródło prawdy)

Aby wybrać między tymi opcjami, zdecyduj, czy model EF Core, czy schemat bazy danych jest źródłem prawdy.

Migracje

W rzeczywistych projektach modele danych zmieniają się w miarę implementowania funkcji aplikacji. Po dodaniu i usunięciu nowych jednostek należy odpowiednio zmienić schematy bazy danych. Funkcja migracji platformy EF Core umożliwia przyrostowe aktualizowanie schematu bazy danych w celu zachowania synchronizacji z modelem danych aplikacji przy jednoczesnym zachowaniu istniejących danych w bazie danych.

Po wprowadzeniu zmiany modelu danych deweloper używa narzędzi EF Core do dodania odpowiedniej migracji. Program EF Core porównuje bieżący model z migawką poprzedniego modelu, aby określić różnice. Kod języka C# do implementowania zmian jest generowany. Pliki języka C# można modyfikować w celu zachowania niestandardowego lub inicjowania danych. Pliki są śledzone w kontroli źródła projektu, podobnie jak w przypadku każdego innego pliku źródłowego.

Po wygenerowaniu nowej migracji można ją zastosować do bazy danych na różne sposoby. Program EF Core rejestruje wszystkie zastosowane migracje w specjalnej tabeli historii. Tabela historii zawiera rekord, z których zostały zastosowane migracje.

Inżynieria odwrotna

Inżynieria odwrotna to proces tworzenia szkieletu klas modelu jednostek i DbContext klasy opartej na schemacie bazy danych. Takie podejście jest często używane w przypadku istniejących lub udostępnionych baz danych zarządzanych przez administratora bazy danych.

W następnej lekcji rozpoczniesz pracę z programem EF Core przy użyciu migracji.

Sprawdź swoją wiedzę

1.

Która klasa udostępnia podstawowy zestaw operacji, których można użyć do konfigurowania bazy danych i interakcji z nią?