zoukankan      html  css  js  c++  java
  • EFCore 自动更新 CreateTime, UpdateTime

    覆写SaveChanges() 即可

    public override int SaveChanges()
            {
                var ee = ChangeTracker.Entries().ToList();
                foreach (var entry in ee)
                {
                    try
                    {
                        if (entry.State == EntityState.Added)
                        {
                            Entry(entry.Entity).Property("CreateTime").CurrentValue = DateTime.Now;
                        }
                        if (entry.State == EntityState.Modified)
                        {
                            Entry(entry.Entity).Property("UpdateTime").CurrentValue = DateTime.Now;
                        }
                    }
                    catch (Exception e )
                    {
    
                        throw e;
                    }
                }
                return base.SaveChanges();
            }
    

      

     这里还可能需要写入 Creator  updater, 下面代码,可以获取操作的用户。

    public class AspNetCorePrincipalAccessor : DefaultPrincipalAccessor
    {
    public override ClaimsPrincipal Principal => _httpContextAccessor.HttpContext?.User ?? base.Principal;

    private readonly IHttpContextAccessor _httpContextAccessor;

    public AspNetCorePrincipalAccessor(IHttpContextAccessor httpContextAccessor)
    {
    _httpContextAccessor = httpContextAccessor;
    }
    }

    public class DefaultPrincipalAccessor : IPrincipalAccessor, ISingletonDependency
    {
    public virtual ClaimsPrincipal Principal => Thread.CurrentPrincipal as ClaimsPrincipal;

    public static DefaultPrincipalAccessor Instance => new DefaultPrincipalAccessor();
    }

    public class HttpContextPrincipalAccessor : DefaultPrincipalAccessor
    {
    public override ClaimsPrincipal Principal => HttpContext.Current?.User as ClaimsPrincipal ?? base.Principal;
    }

    Configuration.ReplaceService<IPrincipalAccessor, HttpContextPrincipalAccessor>(DependencyLifeStyle.Transient);

      

    气功波(18037675651)
  • 相关阅读:
    logging模板日志格式
    MariaDB修改默认字符集
    Django之表单验证
    Django之定制属于自己的admin
    sympy-高数可以这么学
    matplotlib01
    mysql---- 用户权限管理
    django----JSONP知识回顾
    django----文件上传
    数据库结构备份
  • 原文地址:https://www.cnblogs.com/qgbo/p/14330367.html
Copyright © 2011-2022 走看看