if (typeof(T).GetInterface(nameof(IHasEntityModifierData)) != null)
{
await _context.Set<T>()
.Where(predicate)
.ExecuteUpdateAsync(a=>a.SetProperty(p=>(p as IHasEntityModifierData).LastModifiedDate,DateTime.UtcNow));
}
错误是:
执行更新(a => a.SetProperty
假设我有客户和产品实体 客户端实现了 IHasEntityModifierData,而产品则没有。
要通过通用方法生成执行更新,如果实体实现了 IHasEntityModifierData,我也想更新修改日期。但用这种方法铸造是行不通的
解决了EF.Property函数的问题; 解决方案是使用:
SetProperty(p => EF.Property<DateTime?>(p, nameof(IHasEntityModifierData.LastModifiedDate)), p=>DateTime.UtcNow)