Возможности, добавленные в версии EF Core 1.0
Включает консоль, WPF, WinForms, ASP.NET 4 и многое другое.
Поддержка ASP.NET Core для .NET Framework и .NET Core в операционных системах Windows, OSX и Linux.
На основе сущностей POCO со свойствами get и set для стандартных скалярных типов (int
, string
и т. д.).
В модели на основе внешнего ключа можно создавать отношения "один ко многим" и "один к не более чем одному". С этими отношениями можно связать свойства навигации для простой коллекции или ссылочных типов.
В этом варианте исходная модель создается на основе формы классов сущностей.
Позволяет переопределять метод OnModelCreating
для пользовательского контекста, чтобы настраивать модель, обнаруженную на основе соглашений.
Это атрибуты, которые можно добавлять в классы и (или) свойства сущности и которые будут влиять на модели EF. Например, добавление [Required]
сообщит платформе EF, что соответствующее свойство является обязательным.
Позволяет сопоставить сущности с таблицами и (или) столбцами.
Поддерживается создание на стороне клиентских процессов или в базе данных.
Позволяет базе данных создавать значения при вставке (для значений по умолчанию) или обновлении данных (для вычисляемых столбцов).
Позволяет определить в модели объекты последовательностей.
Позволяет определить альтернативные ключи и связи, использующие такие ключи.
При определении индексов в модели они автоматически добавляются в базу данных. Поддерживаются также индексы UNIQUE.
Возможность определить в модели свойства, которые не объявляются и не хранятся в классе .NET, но отслеживаются и обновляются с помощью EF Core. Чаще всего применяется для свойств внешнего ключа, которые нежелательно отображать в самом объекте.
Позволяет сохранять несколько сущностей иерархии в одну таблицу, в которой столбец дискриминатора определяет тип сущности для каждой записи в базе данных.
Обнаруживает в модели неправильные соотношения и предоставляет полезные сообщения об ошибках.
Позволяет автоматически обнаруживать изменения в сущностях, сравнивая их текущее состояние с копией (моментальным снимком) исходного состояния.
Позволяет создавать уведомления для отслеживающей стороны при изменении значений свойств.
Осуществляется через DbContext.Entry
и DbContext.ChangeTracker
.
Новый API DbContext.AttachGraph
позволяет повторно присоединить сущности к контексту, чтобы избежать лишних операций создания или изменения объектов.
Изменения экземпляров сущности могут сохраняться в базу данных.
Защита от перезаписи изменений, внесенных другим пользователем после получения данных из базы данных.
Позволяет освободить текущий поток для обработки других запросов, пока база данных обрабатывает команды от SaveChanges
.
Означает, что SaveChanges
всегда является атомарной (то есть либо завершается успешно полностью, либо не вносит никаких изменений в базу данных). Также для транзакций предоставлены специальные API, которые позволяют совместно использовать транзакции в нескольких экземплярах контекста и т. д.
Повышает производительность, выполняя несколько команд INSERT/UPDATE/DELETE за одно обращение к базе данных.
Предоставляет возможность использовать LINQ для извлечения данных из базы данных.
Позволяет включать в запросы логику, которая не может быть выполнена в базе данных, и обрабатывать ее уже после получения данных в память.
Запросы выполняются быстрее, если контекст не отслеживает изменения экземпляров сущностей (это полезно, если результаты доступны только для чтения).
Предоставляет методы Include
и ThenInclude
для определения смежных данных, которые нужно извлекать вместе с основным запросом.
Позволяет освободить текущий поток и его ресурсы для обработки других запросов, пока база данных обрабатывает текущий запрос.
Предоставляет метод DbSet.FromSql
для получения данных с помощью необработанных SQL-запросов. Эти запросы можно также создавать с помощью LINQ.
Предназначены в основном для тестирования, при котором часто бывает нужно быстро создать или удалить базу данных без использования миграции.
Позволяет изменять схему реляционной базы данных параллельно с развитием модели.
Создает модель EF на основе существующей схемы реляционной базы данных.
Позволяет подключаться к Microsoft SQL Server 2008 и более новых версий.
Позволяет подключаться к базе данных SQLite 3.
Позволяет легко выполнять тестирование без подключения к настоящим базам данных.
Поддерживаются несколько поставщиков других ядер СУБД. Полный их список можно найти в статье Database Providers (Поставщики баз данных).
Отзыв о .NET
.NET — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв: