操作日志记录

操作日志
数据对比法

 public static string Compare<T>(T old, T cur, string emptyMessage = "无变化")
        {
            var propertyInfos = old.GetType().GetProperties();//返回当前old的所有公共属性(如果不是同一个实体类对比 ,可获取cur的属性,具体查看注释的代码)
            // var curPropertyInfos = cur.GetType().GetProperties();//返回当前cur的所有公共属性
            var message = string.Empty;
            var filterName = new[] { "ModifyTime", "ModifyUserName", "ModifyUserId", "CreateTime", "CreateUserName", "CreateUserId" };//过滤字段的集合
            foreach (var item in propertyInfos)
            {
                if (filterName.Contains(item.Name)) continue;
                var p = propertyInfos.FirstOrDefault(x => x.Name == item.Name);//查找需要记录日志的字段
                // var c = curPropertyInfos.FirstOrDefault(x => x.Name == item.Name);
                if (p == null) continue;//  if (p == null || c == null) continue;
                var oldVal = item.GetValue(old);
                var newVal = item.GetValue(cur);// var newVal = c.GetValue(cur);

                var isCompare = EqualityComparer<object>.Default.Equals(oldVal, newVal);
                if (isCompare) continue;
                message += $"{item.Name} :{oldVal}=>{newVal}   ; ";
            }
            if (string.IsNullOrEmpty(message)) message = emptyMessage;
            return message;
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值