Funkcje zawarte w programie EF Core 1.0

Platformy

.NET Framework 4.5.1

Obejmuje konsolę, WPF, WinForms, ASP.NET 4 itp.

.NET Standard 1.3

Obejmuje to ASP.NET Core przeznaczone zarówno dla platform .NET Framework, jak i .NET Core w systemach Windows, OSX i Linux.

Modelowanie

Podstawowe modelowanie

Na podstawie jednostek POCO z właściwościami get/set typowych typów skalarnych (int, stringitp.).

Relacje i właściwości nawigacji

Relacje jeden do wielu i jeden do zera lub jednego można określić w modelu na podstawie klucza obcego. Właściwości nawigacji prostych typów kolekcji lub odwołań można skojarzyć z tymi relacjami.

Konwencje wbudowane

Tworzą one początkowy model na podstawie kształtu klas jednostek.

Płynny interfejs API

Umożliwia zastąpienie OnModelCreating metody w kontekście w celu dalszego konfigurowania modelu odnalezionego zgodnie z konwencją.

Adnotacje danych

To atrybuty, które można dodać do klas/właściwości jednostki i będą miały wpływ na model EF. Na przykład dodanie [Required] powiadomi ef o tym, że właściwość jest wymagana.

Mapowanie tabeli relacyjnej

Umożliwia mapowanie jednostek na tabele/kolumny.

Generowanie wartości klucza

W tym generowanie po stronie klienta i generowanie bazy danych.

Wartości wygenerowane przez bazę danych

Umożliwia generowanie wartości przez bazę danych podczas wstawiania (wartości domyślne) lub aktualizacji (obliczone kolumny).

Sekwencje w programie SQL Server

Umożliwia definiowanie obiektów sekwencji w modelu.

Unique

Umożliwia zdefiniowanie kluczy alternatywnych i możliwość definiowania relacji przeznaczonych dla tego klucza.

Indeksy

Definiowanie indeksów w modelu automatycznie wprowadza indeksy w bazie danych. Obsługiwane są również unikatowe indeksy.

Właściwości stanu towarzyszącego

Umożliwia zdefiniowanie właściwości w modelu, które nie są zadeklarowane i nie są przechowywane w klasie .NET, ale mogą być śledzone i aktualizowane przez program EF Core. Często używane w przypadku właściwości klucza obcego podczas uwidaczniania ich w obiekcie nie jest pożądane.

Wzorzec dziedziczenia tabeli na hierarchię

Umożliwia zapisanie jednostek w hierarchii dziedziczenia w jednej tabeli przy użyciu kolumny dyskryminującej w celu zidentyfikowania typu jednostki dla danego rekordu w bazie danych.

Walidacja modelu

Wykrywa nieprawidłowe wzorce w modelu i udostępnia przydatne komunikaty o błędach.

Śledzenie zmian

Śledzenie zmian migawek

Umożliwia automatyczne wykrywanie zmian jednostek przez porównanie bieżącego stanu z kopią (migawką) oryginalnego stanu.

Śledzenie zmian powiadomień

Umożliwia jednostki powiadamianie monitora zmian o modyfikacji wartości właściwości.

Uzyskiwanie dostępu do śledzonego stanu

Za pośrednictwem i DbContext.EntryDbContext.ChangeTracker.

Dołączanie odłączonych jednostek/grafów

Nowy DbContext.AttachGraph interfejs API ułatwia ponowne dołączanie jednostek do kontekstu w celu zapisania nowych/zmodyfikowanych jednostek.

Zapisywanie danych

Podstawowa funkcja zapisywania

Umożliwia utrwalanie zmian w wystąpieniach jednostek w bazie danych.

Optymistyczna współbieżność

Chroni przed zastępowaniem zmian wprowadzonych przez innego użytkownika, ponieważ dane zostały pobrane z bazy danych.

Asynchroniczne zmiany

Może zwolnić bieżący wątek, aby przetwarzać inne żądania, podczas gdy baza danych przetwarza polecenia wydane z SaveChanges.

Transakcje bazy danych

Oznacza to, że jest zawsze niepodzielne (co oznacza, że SaveChanges całkowicie się powiedzie lub żadne zmiany nie są wprowadzane do bazy danych). Istnieją również interfejsy API związane z transakcjami, które umożliwiają udostępnianie transakcji między wystąpieniami kontekstu itp.

Relacyjne: dzielenie na partie instrukcji

Zapewnia lepszą wydajność dzięki dzieleniu na partie wielu poleceń INSERT/UPDATE/DELETE w jedną dwukierunkową bazę danych.

Zapytanie

Podstawowa obsługa LINQ

Umożliwia używanie linQ do pobierania danych z bazy danych.

Ocena klienta/serwera mieszanego

Umożliwia wykonywanie zapytań zawierających logikę, której nie można ocenić w bazie danych i dlatego należy je ocenić po pobraniu danych do pamięci.

Notracking

Zapytania umożliwiają szybsze wykonywanie zapytań, gdy kontekst nie musi monitorować zmian w wystąpieniach jednostki (jest to przydatne, jeśli wyniki są tylko do odczytu).

Wczesne ładowanie

Udostępnia metody Include i ThenInclude do identyfikowania powiązanych danych, które również powinny być pobierane podczas wykonywania zapytań.

Zapytanie asynchroniczne

Może zwolnić bieżący wątek (i skojarzone zasoby) w celu przetwarzania innych żądań, gdy baza danych przetwarza zapytanie.

Pierwotne zapytania SQL

Udostępnia metodę używania DbSet.FromSql nieprzetworzonych zapytań SQL do pobierania danych. Te zapytania mogą być również komponowane przy użyciu LINQ.

Zarządzanie schematami bazy danych

Interfejsy API tworzenia/usuwania w bazie danych

Są przeznaczone głównie do testowania, w którym chcesz szybko utworzyć/usunąć bazę danych bez korzystania z migracji.

Migracje relacyjnej bazy danych

Zezwól na rozwój schematu relacyjnej bazy danych w miarę zmian modelu.

Inżynier odwrotny z bazy danych

Tworzenie szkieletów modelu EF na podstawie istniejącego schematu relacyjnej bazy danych.

Dostawcy baz danych

SQL Server

Połączenie do programu Microsoft SQL Server 2008.

SQLite

Połączenie do bazy danych SQLite 3.

W pamięci

Jest przeznaczony do łatwego włączania testowania bez nawiązywania połączenia z rzeczywistą bazą danych.

Dostawcy innych firm

Kilku dostawców jest dostępnych dla innych aparatów baz danych. Aby uzyskać pełną listę, zobacz Dostawcy baz danych.