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)
  • 相关阅读:
    js控制打印 转的
    原生javascript Ajax
    前端页面js与flash交互——js获取flash对象,并传递参数
    物联网技术概要
    socket.io 入门教程
    转载:socket.io 入门
    转载:node.js socket.io
    IIS7 应用程序池设置成 经典 v2.0
    .net 估计要死在你手里了
    彻底的放弃.net
  • 原文地址:https://www.cnblogs.com/qgbo/p/14330367.html
Copyright © 2011-2022 走看看