Платформа объекта: Установка метки времени обновления

Все наши таблицы базы данных имеют UpdateUserID и UpdateTS. Я хотел бы иметь этот набор, если мой объект имеет изменения. Существует ли способ, которым у меня может быть это обновление на месте условно?

Если я вручную установил UpdateTS в коде, то он скажет, что мой объект изменился и будет всегда обновлять объект.

10
задан Eric J. 28 October 2012 в 22:05
поделиться

2 ответа

Вы должны иметь возможность обрабатывать событие SevenChanges ( здесь ) и выполнить логику, как описано @SANDER

3
ответ дан 3 December 2019 в 21:59
поделиться

Я вызываю этот метод расширения перед вызовом context.savechanges () :

public static void SetLastModified(this ObjectContext context, DateTime dateTime)
{
    DateTime now = DateTime.UtcNow;
    foreach (ObjectStateEntry entry in context.ObjectStateManager.GetObjectStateEntries(EntityState.Modified))
    {
        if (!entry.IsRelationship)
        {
            IHasLastModified lastModified = entry.Entity as IHasLastModified;
            if (lastModified != null)
                lastModified.LastModified = now;
        }
    }
}

Я могу легко вызвать этот код, потому что я оборудовал объектContext в классе репозитория Отказ Если вы используете его голым, вы можете подключить событие objectContext.savingchanges , чтобы сделать что-то подобное.

7
ответ дан 3 December 2019 в 21:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: