获取默认类型的DbContext.ChangeTracker.Entries

时间:2014-05-31 02:11:12

标签: c# entity-framework orm dbcontext

我正在尝试在已添加,编辑,删除的条目上创建日志。 我还需要知道他们的基本类型,我想出了以下解决方案:

foreach (DbEntityEntry e in _context.ChangeTracker.Entries())
{
    if (e.State == EntityState.Added)
    {
        _log.Write(_context.Database.Connection.Database, "ADD", typeof(<Type>).Name, null, (<Type>)e.Entity);
    }
    else if (e.State == EntityState.Modified)
    {
        _log.Write(_context.Database.Connection.Database, "EDIT", typeof(<Type>).Name, null, (<Type>)e.Entity);
    }
    else if (e.State == EntityState.Deleted)
    {
        _log.Write(_context.Database.Connection.Database, "DELETE", typeof(<Type>).Name, null, (<Type>)e.Entity);
    }
}

_context.SaveChanges();
_log.Commit();

有没有办法获得“条目”类型,因为它存储为“对象”。 提前谢谢你!

1 个答案:

答案 0 :(得分:1)

这应该有效:

Type entityType = ObjectContext.GetObjectType(e.Entity.GetType()).Name;