请教差异日志的疑问 返回
// 批量开启差异日志
StaticConfig.CompleteInsertableFunc =
StaticConfig.CompleteUpdateableFunc =
StaticConfig.CompleteDeleteableFunc = db =>
{
if (db.GetType().GenericTypeArguments[0].GetInterfaces().Any(it => it == typeof(IDiffLog)))
{
var method = db.GetType().GetMethod("EnableDiffLogEvent");
method.Invoke(db, [null]);
}
};
并在
// 差异日志功能(审计)
Aop.OnDiffLogEvent = it => 事件中处理的差异
现在我想部分执行数据不开启差异日志 有什么办法么?
热忱回答(8)
-
fate sta VIP0
2周前里面写IF ELSE
0 回复 -
fate sta VIP0
2周前if (db.GetType().GenericTypeArguments[0].GetInterfaces().Any(it => it == typeof(IDiffLog)))
这种就是继承idifflog的才进入
0 回复 -
Roe deer VIP0
2周前我现在是 继承了 IDiffLog 接口的实体,执行数据库操作的时候都开启了差异记录了,实际情况中,有些时候执行不需要记录 ,我不知道执行的时候,怎么屏蔽(实际已经全局配置了)
0 回复 -
fate sta VIP0
2周前那你就不要用全局注册
0 回复 -
fate sta VIP0
2周前
0 回复 -
fate sta VIP0
2周前全局配置还有一种方法就是通过IOC赋值。
比如 你业务中var a= app.GetService<ClassA>():
a.IsNoDiff=true;
然后
Aop中用 app.GetService<ClassA>():拿出a.IsNoDiff是不是true
通过IOC的scoped方式进行变量传递
0 回复 -
Roe deer VIP0
2周前
0 回复 -
Roe deer VIP0
2周前多谢
0 回复