Перейти к содержанию

Использование EF Core в промышленных приложениях

Кратко перечислим список вещей, которые нужно принять во внимание при переходе к промышленной эксплуатации EF Core.

  • Скаффолдинг столбцов — EF Core использует консервативные значения для таких вещей, как строковые столбцы, допуская строки большой или неограниченной длины. На практике может возникнуть желание ввести разумные ограничения;
  • Валидация — можно декорировать сущности атрибутами валидации DataAnnotations, но EF Core не будет автоматически проверять значения (в отличие от EF 6.x);
  • Параллелизм — EF Core предоставляет несколько способов для работы с параллелизмом, когда несколько пользователей пытаются обновить сущность одновременно. Одно из частичных решений — использовать столбцы Timestamp;
  • Синхронные и асинхронные команды — EF Core предоставляет как синхронные, так и асинхронные методы для взаимодействия с БД. Асинхронный режим зачастую предпорчтительней, однако существуют нюансы, которые не позволяют использовать этот подход во всех случаях;
  • автоматические миграции — в случае автоматизации развертывания приложения неизбежно понадобится способ автоматического применения миграций; у разных способов есть свои плюсы и минусы;
  • несколько веб-хостов — распространненой ситуацией является наличие нескольких веб-серверов (например, реплик приложения), использующих одну БД;
  • обратно совместимые схемы — следствием использования подхода с несколькими веб-хостами будет ситуация, когда приложение обращается к БД с более новой схемой. Это означает, что необходимо делать изменения схемы обратно совместимыми, где только возможно;
  • сохранение миграций в другой сборке — при этом подходе необходимо использовать несколько иные команды, нежели описанные здесь;
  • наполнение БД — когда БД создается впервые, часто имеется требование о наличии в ней неких исходных данных. В отличие от EF 6.x, EF Core не имеет встроенного механизма наполнения БД.

Последнее обновление : 1 мая 2023 г.
Дата создания : 2 октября 2022 г.

Комментарии

Комментарии