我在POCO模式下使用EF 4.1。
LINQ2SQL在插入/更新/删除实体时调用的datacontext上生成部分方法。它们对以下情况很有帮助:
partial void InsertCampaign( Campaign instance )
{
instance.CreatedAtUTC = instance.ModifiedAtUTC = DateTime.UtcNow;
ExecuteDynamicInsert( instance );
}
partial void UpdateCampaign( Campaign instance )
{
instance.ModifiedAtUTC = DateTime.UtcNow;
ExecuteDynamicUpdate( instance );
}
所以,我的问题是 - 使用EF,你如何挂钩插入/更新/删除实体,以便你可以执行上述操作?我不希望每次创建/更新实体时都不必手动执行此操作。
谢谢
答案 0 :(得分:1)
覆盖DbContext中的SaveChanges()方法并执行以下操作:
public override int SaveChanges()
{
var modified = this.ChangeTracker.Entries().Where(e => e.State == System.Data.EntityState.Modified);
// set whatever values you want on modified entities
return base.SaveChanges();
}