我正在使用Entity Framework,我在上下文中做了一些事情,例如:
现在我要做的是,当我使用我的上下文加载属性时,例如:
我希望选择所有
我能看到有一个要重写的方法,但不确定如何进行操作:
public override int SaveChanges()
{
foreach (var entry in ChangeTracker.Entries())
{
if (entry.Entity is Base entity)
{
if (entry.State == EntityState.Added)
{
entity.Created = DateTime.UtcNow;
entity.Modified = DateTime.UtcNow;
}
else if (entry.State == EntityState.Modified)
{
entity.Modified = DateTime.UtcNow;
}
}
}
return base.SaveChanges();
}
其中Base是:
public int Id { get; set; }
public DateTime? Created { get; set; }
public DateTime? Modified { get; set; }
public bool IsDeleted { get; set; }
现在我要做的是,当我使用我的上下文加载属性时,例如:
_context.MyEntities.AsEnumerable(something);
我希望选择所有
IsDeleted
属性设置为 false 的实体。在 DbContext
中是否可以像覆盖 SaveChanges()
一样实现这一点?我能看到有一个要重写的方法,但不确定如何进行操作:
public override DbSet<TEntity> Set<TEntity>()
{
return base.Set<TEntity>();
}
_context.MyEntities.Where(x => !x.IsDeleted).ToList()
吗?调用.AsEnumerable()
会将整个表格下载到内存中,请注意。 - Camilo Terevinto