假设我有以下对象
public class Car{
public int id;
public string name;
public string color;
publid DateTime LastUpdateDate;
}
public class CarPart{
public int id;
public string name;
public string color;
}
每当有人更新任何字段时,我都希望更新LastUpdateDate字段 我最糟糕的设计是写下面的内容
public void setName(string name){
this.name=name;
this.LastUpdateDate = DateTime.now;
}
一个。这些类是自动生成的,我必须保持部分 湾太耦合了。
注意:我正在寻找能够处理对象(Car)及其多值(CarPart)对象中的字段更改的内容 感谢。
答案 0 :(得分:2)
大多数人倾向于覆盖Context的SaveChanges()
审核方法。
首先创建一个IAuditable
接口并将其应用于您要审核的所有实体:
public interface IAuditable
{
public DateTime? LastUpdateDate { get; set; }
}
然后在Context
:
public override int SaveChanges()
{
var entries = ChangeTracker.Entries()
.Where(e => e.State == EntityState.Modified);
foreach (var entry in entries)
{
var auditableEntity = entry.Entity as IAuditable;
if (auditableEntity != null)
auditableEntity.LastUpdateDate = DateTime.UtcNow;
}
return base.SaveChanges();
}
另外,看看