Сначала код структуры сущности. Как лучше всего установить свойство при сохранении сущности? - PullRequest
0 голосов
/ 31 января 2012

Я использую Entity Framework 4.1 и сначала использую код.

Это мой класс

public class Dummy {
    public string Name { get; set; }
    public DateTime lastModifiyed { get; set; }
}

Я пытаюсь сделать так, чтобы каждый раз объект Dummyсохранено свойство lastModifiyed должно быть установлено на текущее время.

Даже если я использую атрибуты, как требуется, этот код все равно будет действителен.

var d = new Dummy();
d.lastModifiyed = DateTime.MinValue

Что лучше всего сделатьтакого рода вещи.Я прочитал, что переопределить SaveChanges в классе, который наследуется от DbContext, и проверить, например, интерфейс - хороший путь.Или как мне поступить?

1 Ответ

0 голосов
/ 02 февраля 2012

Переопределите метод SaveChanges и перед вызовом base.SaveChanges перечислите изменения из трекера изменений. То есть:

foreach (var item in (this as IObjectContextAdapter).ObjectContext.ObjectStateManager.GetObjectStateEntries(EntityState.Added | EntityState.Modified | EntityState.Deleted)
    .Where(entry => entry.Entity is ITracksLastModified)
    .Select(entry => entry.Entity as ITracksLastModified))
{
    item.LastModified = DateTime.UtcNow;
}
...