您可以使用
HttpContext.Current.User.Identity.Name获取当前用户的名称。
public override int SaveChanges(){ var changeSet = ChangeTracker.Entries<IAuditable>(); if (changeSet != null) { foreach (var entry in changeSet.Where(c => c.State != EntityState.Unchanged)) { entry.Entity.ModifiedDate = DateProvider.GetCurrentDate(); entry.Entity.ModifiedBy = HttpContext.Current.User.Identity.Name; } } return base.SaveChanges();}更好的方法是使用构造函数注入将当前用户传递给上下文
public class MyContext : DbContext{ public MyContext(string userName) { UserName = userName; } public string UserName { get; private set; } public override int SaveChanges() { var changeSet = ChangeTracker.Entries<IAuditable>(); if (changeSet != null) { foreach (var entry in changeSet.Where(c => c.State != EntityState.Unchanged)) { entry.Entity.ModifiedDate = DateProvider.GetCurrentDate(); entry.Entity.ModifiedBy = UserName; } } return base.SaveChanges(); }}


