【发布时间】:2016-02-20 21:28:30
【问题描述】:
我正在尝试在我们的 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);
}
}
【问题讨论】:
-
一种解决方法是使用 SQL 视图过滤掉软删除的记录。然后使用 View 作为您的数据库优先模型。
标签: c# sql-server asp.net-mvc entity-framework