我在所有实体上都有4个自定义字段。这四个字段分别是:
是否有一种方法可以钩入Entity Framework Core事件,以便在插入时填充
CreatedBy
、CreatedDate
、UpdatedBy
和UpdatedDate
。是否有一种方法可以钩入Entity Framework Core事件,以便在插入时填充
CreatedDate
为当前日期时间,并将CreatedBy
填充为当前用户?当数据库有更新时,它将用当前日期时间填充UpdatedDate
,并用当前用户填充UpdatedBy
?
ChangeTracker.Entries().TypeOf<AuditableEntity>()
已经过滤了可审计实体。但如果想进一步模块化,可以使用策略模式并将其拆分为多个IEntitySaveHandler<T>
或IEntitySaveHandler
,然后在其上有两种方法:CanHandle
和Handle
方法。然后每个处理程序都可以检查它是否适用于该实体,如果是,则执行更改。这种方法也会尊重开放/封闭原则(对扩展开放,对修改关闭),您可以添加新的处理程序而不修改基本DbContext。 - Tseng