我向所有实体添加了一个鉴别器列,以方便soft delete。
目前我通过逐个在每个实体上指定它来做到这一点:
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
的实体添加一个鉴别器,而不是逐个进行?