Шпаргалка по EF Core 11
Те части EF Core 11, которые стоит запомнить.
Эта подборка - живой указатель всего, что я писал про EF Core 11: новые возможности запросов, векторный поиск по индексам DiskANN, работа над производительностью и заметки по миграции с EF Core 8, 9 или 10.
С чего начать
Если вы уже знакомы с EF Core и нужна только разница, пробегитесь по статьям с тегом “ef core 11”. Если планируете миграцию, статьи с тегом migration содержат ломающие изменения и точные команды dotnet ef, которые я использовал.
Что на этой странице
Список ниже автоматически собирает статьи с одним из тегов: ef core, efcore, entity framework, ef core 11, efcore 11. Сначала самые новые.
Указатель (14 статей)
2026 / 10
- Исправление: Invalid column name 'Value' при использовании SqlQueryRaw<T> для скалярного результата в EF Core
EF Core оборачивает скалярный SqlQuery<T> в подзапрос и выбирает столбец с именем Value, как только вы добавляете First, Where, Max или Single. Задайте в SQL псевдоним AS Value или сначала материализуйте результат.
2026 / 09
- Исправление: EF Core `Contains` для static readonly `IList<T>` или `ISet<T>` не удаётся транслировать
EF Core 8, 9 и 10 не могут транслировать Contains, если список является static readonly полем типа IList, ICollection, ISet или IReadOnlySet. Вызовите Enumerable.Contains явно или перейдите на EF Core 11.
- Миграция приложения EF Core с Cosmos DB после изменения экранирования генерируемых id в EF Core 11
EF Core 11 перестает экранировать '/', '\', '?' и '#' в генерируемых значениях id для Cosmos DB, поэтому документы, записанные EF Core 8-10, больше не находятся по ключу. Как понять, затронуты ли вы, когда включать переключатель EscapeIllegalCosmosIdCharacters и как безопасно переписать id с помощью транзакционного пакета.
- Исправление: InvalidOperationException: Nullable object must have a value в проекции EF Core 11
EF Core выбрасывает это исключение, когда Select читает SQL NULL в int, decimal или DateTime, не допускающий null. Приведите член к типу, допускающему null, и добавьте ?? default, либо защитите навигацию проверкой на null.
2026 / 07
- Миграция сидинга с HasData на UseAsyncSeeding в EF Core 11
Пошаговое руководство по переносу данных сида с HasData на UseSeeding и UseAsyncSeeding в EF Core 11, включая ловушку миграции DeleteData, которая удаляет ваши существующие строки, если вы её пропустите.
- Именованные фильтры запросов vs один глобальный фильтр запросов в EF Core 11: что выбрать?
Оба варианта генерируют одинаковый SQL. Прибегайте к именованным фильтрам только тогда, когда нужно отключить один предикат независимо; один комбинированный фильтр проще для единственной задачи в EF Core 11.
- Решение: "The LINQ expression could not be translated" в EF Core 11
EF Core 11 выбрасывает это, когда Where или OrderBy вызывает метод, который нельзя преобразовать в SQL. Перепишите предикат с помощью транслируемых операторов или сначала загрузите данные на клиент через AsEnumerable.
- Исправление: "The required column 'X' was not present in the results of a 'FromSql' operation" в EF Core 11
EF Core выбрасывает это, когда ваш сырой SQL не возвращает все столбцы, на которые мапится сущность, или имена не совпадают. Верните все сопоставленные столбцы с совпадающими именами или запросите скалярный либо бесключевой тип.
- Как использовать именованные фильтры запросов для мягкого удаления и мультитенантности в EF Core 11
Примените два независимых глобальных фильтра запросов к одной сущности в EF Core 11: фильтр мягкого удаления и фильтр тенанта, каждый с именем, чтобы можно было отключить один без другого через IgnoreQueryFilters.
2026 / 06
- HasData vs UseSeeding для заполнения данных в EF Core 11: что выбрать?
Используйте HasData только для фиксированных справочных данных, принадлежащих модели. Для всего остального в EF Core 11 используйте UseSeeding и UseAsyncSeeding. Сравнение бок о бок с правилами, которые предопределяют решение.
- Как засеять связь многие-ко-многим в EF Core 11
Заполнение таблицы связки для отношения многие-ко-многим в EF Core 11: неявные теневые ключи, которые нужно именовать вручную, шаблон UsingEntity HasData и альтернатива UseSeeding во время выполнения, работающая с навигациями пропуска.
- Как заполнять данные с помощью UseSeeding и UseAsyncSeeding в EF Core 11
Заполняйте справочные данные правильно в EF Core 11 с помощью UseSeeding и UseAsyncSeeding: где их настраивать, когда они выполняются, какую проверку идемпотентности нельзя пропускать и почему нужно реализовать обе.
- Как использовать перехватчики EF Core 11 для аудита
Проставляйте столбцы CreatedBy/ModifiedOn и пишите полный журнал изменений с помощью ISaveChangesInterceptor в EF Core 11, включая время жизни в DI, текущего пользователя и подводные камни ExecuteUpdate.
2026 / 04
- EF Core 11 включает transactional batches Cosmos DB по умолчанию
EF Core 11 группирует writes Cosmos DB в transactional batches по container и partition на каждом SaveChanges, давая best-effort атомарность и меньше roundtrips без изменений кода.