我正在尝试实现类似这个公认的答案,但我BaseEntity是一个通用类,如下所示:
public abstract class BaseEntity<TKey>
{
public TKey Id { get; set; }
public DateTime CreatedAt { get; set; }
public DateTime UpdatedAt { get; set; }
}
现在我想在该SaveChangesAsync()方法上实现时间戳添加,但我不知道如何去做。我的代码如下所示:
...
var entries = ChangeTracker
.Entries()
.Where(e => e.Entity is BaseEntity && (
e.State == EntityState.Added
|| e.State == EntityState.Modified));
foreach (var entityEntry in entries)
{
((BaseEntity)entityEntry.Entity).UpdatedAt = DateTime.Now;
if (entityEntry.State == EntityState.Added)
{
((BaseEntity)entityEntry.Entity).CreatedAt = DateTime.Now;
}
}
但问题是BaseEntity泛型类型,因此比较不起作用。