Omówienie platformy EF Core
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:
DbContext to specjalna klasa, która reprezentuje jednostkę pracy. DbContext
Udostę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 DbContext
klasy :
- 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.