【发布时间】:2011-05-27 19:27:14
【问题描述】:
我正在尝试对一组类中的属性进行属性更改的受限“审核日志”。我已经成功地找到了如何设置 CreatedOn|ModifiedOn 类型属性,但我没有找到如何“找到”已修改的属性。
例子:
public class TestContext : DbContext
{
public override int SaveChanges()
{
var utcNowAuditDate = DateTime.UtcNow;
var changeSet = ChangeTracker.Entries<IAuditable>();
if (changeSet != null)
foreach (DbEntityEntry<IAuditable> dbEntityEntry in changeSet)
{
switch (dbEntityEntry.State)
{
case EntityState.Added:
dbEntityEntry.Entity.CreatedOn = utcNowAuditDate;
dbEntityEntry.Entity.ModifiedOn = utcNowAuditDate;
break;
case EntityState.Modified:
dbEntityEntry.Entity.ModifiedOn = utcNowAuditDate;
//some way to access the name and value of property that changed here
var changedThing = SomeMethodHere(dbEntityEntry);
Log.WriteAudit("Entry: {0} Origianl :{1} New: {2}", changedThing.Name,
changedThing.OrigianlValue, changedThing.NewValue)
break;
}
}
return base.SaveChanges();
}
}
那么,有没有办法访问在 EF 4.1 DbContext 中随着这种详细程度而更改的属性?
【问题讨论】:
标签: entity-framework