Мы получили C # -приложение, созданное с VS2015, в котором мы используем платформу сущностей (EF 5 с данными в первую очередь).
В модели мы должны настроить столбец в некоторых включенных сущностях из базы данных, чтобыStoreGeneratedPattern = Computed.
В нашем случае мы получили в этих сущностях столбец типа datetime, в который мы хотим в случае вставки текущей метки времени (как она определена в базе данных) без явной установки ее в коде.
Этого можно достичь в конструкторе EDMX, установив шаблон вручную.
Но поскольку мы время от времени обновляем модель, удаляя измененные объекты и повторно добавляя их с помощью «Обновить модель»из базы данных "настройки шаблона будут потеряны и должны быть добавлены заново.
Поскольку это опасно, если разработчик забудет настроить один из столбцов сущности, мы хотели настроить его в модели по коду.
Итак, мы попробовали это в конструкторе модели сущностей:
public MyEntity()
: base("name=MyEntity")
{
DbModelBuilder modelBuilder = new DbModelBuilder();
modelBuilder.Entity<Table_A>().Property(t => t.column1)
.HasDatabaseGeneratedOption(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Computed);
}
Каждый раз, когда экземплярМодель сущности создана, код выполнен.Но вместо того, чтобы работать, как шаблон был скорректирован вручную, текущая временная метка не устанавливается в базе данных после вставки.
Как мы можем решить эту проблему?
Любая помощь будет принята с благодарностью.
Патрик