我试图在我们的EF 6项目中实现软删除。我们正在使用数据库第一种方法,我注意到您无法覆盖OnModelCreating
。
使用Code-First方法时,可以按照此blog post中的描述为特定实体应用全局过滤器。
如何使用Database First方法重新创建它?
public class MyContext : DbContext
{
public virtual IDbSet<Company> Companies { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Company>()
.Map(m => m.Requires("IsDeleted").HasValue(false))
.Ignore(m => m.IsDeleted);
}
}
答案 0 :(得分:0)
public class MyContext : DbContext
{
public virtual IDbSet<Company> Companies { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Company>()
.Map(m => m.Requires("IsDeleted").HasValue(false))
.Ignore(m => m.IsDeleted);
base.OnModelCreating(modelBuilder);
}
}
您需要编写base.OnModelCreating(modelBuilder);建立您的查询,并且我还在帖子中突出显示了行。