保存时更新对象

时间:2011-05-13 11:46:26

标签: .net entity-framework entity-framework-4

我有一个实体类(首先使用模型,如果这很重要),它应该保持自己的最后更改日期。

有没有办法在保存时更新?现在我只找到了覆盖OnPropertyChanged,但这不是正确的覆盖,因为在加载对象时也会调用它。

1 个答案:

答案 0 :(得分:2)

您可以在ObjectContext派生类上覆盖SaveChanges,并在保存之前修改上次更改日期。类似的东西:

public override int SaveChagnes(SaveOptions saveOptions)
{
    var entities = ObjectStateManager.GetObjectStateEntries(EntityState.Modified)
                                     .Where(e => !e.IsRelationship)
                                     .Select(e => e.Entity)
                                     .OfType<YourEntityType>();

    var currentDate = DateTime.Now;
    foreach(var entity in entities)
    {
        entity.LastChangedDate = currentDate;
    }

    return base.SaveChanges(saveOptions);
}