1

我正在尝试实现类似这个公认的答案,但我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泛型类型,因此比较不起作用。

4

0 回答 0