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

本文关键字:默认 类型 Entries DbContext ChangeTracker 获取 | 更新日期: 2023-09-27 18:06:06

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

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();

是否有办法获得"Entries"类型,因为它被存储为"object"。提前感谢!

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

应该可以:

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