Я вызываю этот метод расширения перед вызовом 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;
}
}
}
Я могу легко вызвать этот код, потому что я обернул ObjectContext в класс репозитория.Если вы используете его голым, вы можете подключить событие ObjectContext.SavingChanges
, чтобы сделать нечто подобное.