Первый кандидат на выпуск EF Core 2.1 теперь доступен с поддержкой отложенной загрузки, параметров в конструкторах сущностей и трансляции LINQ GroupBy. EF Core — это облегченная кроссплатформенная версия Entity Framework, инфраструктуры объектно-реляционного сопоставления (O / RM) для .NET.
Хотя это второстепенный выпуск, в нем есть ряд улучшений, многие из которых были обещаны, когда в прошлом году был выпущен EF Core 2.0. Улучшения начинаются с поддержки отложенной загрузки. В EF Core теперь есть строительные блоки, позволяющие разработчикам писать классы сущностей, которые могут загружать свои свойства навигации по запросу. Также есть новый пакет Microsoft.EntityFrameworkCore.Proxies, который использует эти строительные блоки для создания прокси-классов с отложенной загрузкой на основе минимально измененных классов сущностей.
Второе улучшение фактически является частью добавления отложенной загрузки. Сущности, которые могут принимать параметры в своем конструкторе, должны были быть добавлены в качестве одного из необходимых строительных блоков для отложенной загрузки, но также могут использоваться сами по себе. Вы можете использовать параметры для вставки значений свойств, отложенной загрузки делегатов и служб.
Оператор LINQ также был улучшен для преобразования предложения SQL Group By. До сих пор оператор GroupBy LINQ всегда приходилось вычислять в памяти. Еще одно улучшение запросов означает, что модель EF Core теперь может включать типы запросов. Они доступны только для чтения и не имеют определенных ключей, но могут возвращаться непосредственно запросами. Они предназначены для использования при сопоставлении с представлениями или таблицами без первичных ключей или при сопоставлении с запросами, определенными в модели.
Преобразование значений — еще одно дополнение к этому выпуску, означающее, что вы сможете преобразовывать значения, полученные из столбцов, прежде чем они будут применены к свойствам, и наоборот. До сих пор EF Core мог отображать свойства только тех типов, которые изначально поддерживаются базовым поставщиком базы данных. Эта функция означает, что вы сможете хранить перечисления в виде строк; отображать беззнаковые целые числа с помощью SQL Server; и осуществлять прозрачное шифрование и дешифрование значений свойств.