Краткий ответ: это невозможно без обходного пути.
Вы должны либо установить StoreGeneratedPattern.Computed
и всегда устанавливать значение в базе данных, либо вы должны установить StoreGeneratedPattern.None
и всегда устанавливать значение в приложении. Разница в том, что если вы установите Computed
, то оно никогда не передаст ваше значение в операторах update или insert, тогда как None
пропустит его всегда, даже если вы его не установите, = приводит к дате по умолчанию, которая равна 1.1.0001, и причине, по которой вы думаю, что EF использует DATETIME2
.
Другая проблема заключается в недостатке дизайна в designer / EF, который не позволяет установить значение по умолчанию для DateTime
.
Обход:
Установите значение по умолчанию для вашей даты и времени в пользовательском параметре без конструктора вашей сущности и установите StoreGeneratedPattern
в None
:
public partial class ActionsJournal
{
public class ActionsJournal() {
CreatedDate = DateTime.Now.AddDay(30);
}
}
Теперь у вас всегда будет значение по умолчанию для вашего CreatedDate
, если ваше приложение или загрузка из базы данных не перезапишут его другим значением.