首先是实体框架代码 - 保存实体时设置属性的最佳方法是什么

时间:2012-01-31 11:18:33

标签: c# .net entity-framework-4.1 ef-code-first code-first

我正在使用Entity Framework 4.1并首先使用代码approch。

这是我的班级

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

我想要做的是每次保存Dummy对象时,lastModifiyed属性应设置为当前时间。

即使我正在使用像requried这样的属性,这段代码仍然有效。

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

做这种事情的最佳实践是什么?我已经阅读过覆盖继承自DbContext的类中的SaveChanges并检查一个接口是一个很好的方法。或者我该怎么办?

1 个答案:

答案 0 :(得分:0)

覆盖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;
}