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
, string
itp.).
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.Entry
DbContext.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.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla