Omówienie platformy EF Core

Ukończone

Entity Framework Core (EF Core) to maper obiektowo-relacyjny (ORM). OrM zapewnia warstwę między modelem domeny implementnym 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 (CLR) i silnie typizowanej składni zapytań zintegrowanych języka (LINQ ).

W programie EF Core baza danych jest abstrakcjonowana za obiekty poCO platformy .NET. Program EF Core obsługuje bezpośrednią interakcję z bazową bazą danych. Korzystając z tego interfejsu API, możesz poświęcić mniej czasu na tłumaczenie żądań do i z bazy danych oraz pisanie kodu SQL i więcej czasu, koncentrując się na ważnej logice biznesowej.

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

  • Załaduj dane jako obiekty języka C# (jednostki).
  • Dodawanie, modyfikowanie i usuwanie danych przez wywołanie metod w jednostkach.
  • Mapowanie wielu tabel bazy danych na pojedynczą jednostkę języka C#.
  • Obsługa problemów ze współbieżnością, które pojawiają się, gdy wielu użytkowników jednocześnie próbuje zaktualizować ten sam rekord.
  • Użyj składni LINQ (System.Linq), aby wysłać zapytanie do bazy danych.
  • Uzyskaj dostęp do wielu baz danych, takich jak SQL Server, SQLite, Azure Cosmos DB, PostgreSQL, MySQL i inne.
  • 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 grafach 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 Entity Framework Core.

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

Klasy pochodzące z DbContextklasy :

  • 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:

  • jest biblioteką będącą wtyczką zaprojektowaną 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 synchronizowania 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 dodawania 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ć pod kątem zachowań niestandardowych lub inicjować dane. Pliki są śledzone w kontroli źródła projektu, tak 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 przechowuje 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 z istniejącymi lub udostępnionymi bazami danych zarządzanymi przez administratora bazy danych.

W następnej lekcji rozpoczniesz pracę z platformą 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ą?