Вы можете указать тип в Fluent API:
modelBuilder.Entity<Book>()
.Property(f => f.DateTimeAdded)
.HasColumnType("datetime2");
Это создает столбец datetime2(7)
в базе данных.Если вы хотите точно настроить точность, вы можете использовать:
modelBuilder.Entity<Book>()
.Property(f => f.DateTimeAdded)
.HasColumnType("datetime2")
.HasPrecision(0);
... для столбца datetime2(0)
в БД.
Однако код, который вы указали в своем вопросе, работаетпотому что тип datetime
позволяет хранить даты примерно до 1750 года. Исключение происходит только для более ранних дат.Распространенной причиной этого исключения является неинициализированное свойство DateTime
, поскольку оно представляет год 0001, который не может быть сохранен в столбце datetime
в SQL Server.
Нет соответствующего атрибута, чтобы определить этоаннотации данных.Это возможно только с Fluent API.