Я пытаюсь добавить свойство CreatedDate
для объектов в моей модели и использую сначала код EF5. Я хочу, чтобы эта дата не менялась после установки, я хочу, чтобы она была датой UTC. Я не хочу использовать конструктор, поскольку у меня есть много объектов в моей модели, которые я хочу наследовать от абстрактного класса, содержащего свойство CreatedDate
, и я не могу принудительно использовать конструктор с интерфейсом.
Я пробовал разные аннотации данных, и я попытался написать инициализатор базы данных, который бы взял конкретный тип объекта и написал ограничение на изменение с getdate()
значением по умолчанию для правильных table_name
и column_name
, но Я не смог правильно написать этот код.
Пожалуйста, не обращайтесь к AuditDbContext - Контекст аудита структуры Entity Framework или EntityFramework.Extended, поскольку они не делают то, что мне нужно здесь.
UPDATE
My CreatedDate
имеет значение null на SaveChanges()
, потому что я передаю ViewModel в мое представление, у которого в нем нет свойства аудита, называемого CreatedDate
. И даже если я передал модель моему представлению, я не редактирую или не сохраняю CreatedDate
в представлении.
Я прочитал здесь, что я мог бы добавить [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
, и это будет означать, что EF правильно сохранит CreatedDate
после Вставки и обновления, но не позволит ему меняет мое приложение: но я просто получаю ошибку Cannot insert explicit value for identity column in table when IDENTITY_INSERT is set to OFF
, добавляя этот атрибут.
Я собираюсь переключиться на EF Model First, потому что это простое требование к базе данных смешно реализовать в Code First.