我为我的所有实体添加了一个鉴别器列,以方便软删除。
目前我通过在每个实体上一一指定它来做到这一点:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Foo>().Map(m => m.Requires("IsDeleted").HasValue(false));
modelBuilder.Entity<Bar>().Map(m => m.Requires("IsDeleted").HasValue(false));
//etc etc
}
我希望能够将其指定为Custom Code First Convention。我的实体都继承自一个ModelBase
类。所以我可以创建一个自定义约定来映射到这样的存储过程:
modelBuilder.Types<ModelBase>().Configure(m => m.MapToStoredProcedures());
但这不可用:
modelBuilder.Types<ModelBase>().Configure(m => m.Requires("IsDeleted").HasValue(false));
那么,除了一个一个地做之外,有没有办法给所有继承的实体添加一个鉴别器ModelBase
呢?