Omówienie platformy EF Core
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:
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.