Использование Entity Framework Установите DateCreated на объекте poco при сохранении - PullRequest
1 голос
/ 18 июля 2010

Я оцениваю Entity Framework 4.0 и мне интересно, как я могу получить доступ к сущностям непосредственно перед их сохранением для установки DateCreated.

С помощью NHibernate это можно сделать с помощью прослушивателя, если это поможет?

1 Ответ

1 голос
/ 18 июля 2010

Вы можете использовать событие ObjectContext SavingChanges, извлечь объекты, которые имеют состояние EntityState.Added, и установить DateCreated для этих объектов. Вам может понадобиться вспомогательный интерфейс, чтобы упростить более независимый обработчик и избежать использования отражения. Возможно, вы также сможете использовать динамический, хотя у вас будет возможность генерировать исключения во время выполнения, что ухудшит производительность:

private void context_SavingChanges(object sender, EventArgs e)
{
    ObjectContext context = sender as ObjectContext;
    if (context != null)
    {
        foreach (ObjectStateEntry entry in context.ObjectStateManager.GetObjectStateEntries (EntityState.Added)
        {
            IEntityWithTimestamps entity = entry.Entity as IEntityWithTimestamps;
            if (entity != null)
            {
                entity.DateCreated = DateTime.Now;
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...