【发布时间】:2019-06-18 11:33:05
【问题描述】:
我有一张桌子:
[Table("Employee")]
public class Employee
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public bool IsDeleted { get; set; }
}
我添加了软删除属性“IsDeleted”。为此,我添加了过滤器,因此当我执行 GET all employees 请求时,不会显示软删除的数据。到目前为止它工作正常,我得到了所有不是“IsDeleted”的用户的列表,我可以请求删除员工,然后发出获取请求,并且删除的用户不在收到的列表中。这是过滤器:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Employee>()
.HasQueryFilter(p => !p.IsDeleted);
base.OnModelCreating(modelBuilder);
}
现在主要的问题是 - 我如何让这个过滤器只对 GET 请求起作用?因为目前,我只能设置“isDeleted”=true,但无法恢复员工(将“isDeleted”更改为“false”)。对软删除的员工无能为力。
【问题讨论】:
-
只需将
IgnoreQueryFilters()用于“写入”场景...
标签: c# entity-framework