Вы можете использовать событие 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;
}
}
}
}