Force Entity Framework 5 использовать тип данных datetime2
Можно ли глобально установить Entity Framework DbContext
для использования datetime2
для всех свойств System.DateTime
при использовании модели Code-First?
Я могу сделать это для каждого столбца с помощью метода HasColumnType()
, но для существующей кодовой базы я хотел бы получить глобальное решение.
Ответы
Ответ 1
Так как EF6 уже давно существует, и этот вопрос все еще появляется в результатах поиска, вот способ использования пользовательских соглашений для установки типа SQL. В методе OnModelCreating в вашем классе DbContext выполните:
modelBuilder.Properties<DateTime>()
.Configure(c => c.HasColumnType("datetime2"));
Ответ 2
Не в EF5, но EF6 (в настоящее время в альфа-версии) позволяет это с пользовательскими соглашениями. Для EF5 вам понадобится какая-то пользовательская конвенциональная среда, основанная на отражении, которая добавит вызовы HasColumnType
к построителю модели через отражение - проверьте, например, EF Code First Extras (он утверждает, что имеет поддержку подключаемых соглашений).