实体框架按约定忽略属性

Ion*_*obu 5 entity-framework ignore properties conventions

我有一个代码优先模型,其中所有实体都是从Entity基类派生的.我IsDeleted在基类中有一个属性,我想在所有实体中忽略(我不能删除/注释IsDeleted属性,因为在许多项目中使用了基类).有没有办法配置modelBuilder为从所有实体(通过约定,我认为)中忽略此属性,而不指定modelBuilder.Entity<...>().Ignore(l => l.IsDeleted)我的模型中的所有实体?

谢谢,离子

mag*_*tic 15

您可以使用新的EF 6.1 自定义代码优先约定执行此操作:

modelBuilder.Types().Configure(c => c.Ignore("IsDeleted"));
Run Code Online (Sandbox Code Playgroud)

这将忽略任何IsDeleted类型的名称的任何属性.

如果您只想为继承某个基类的类执行此操作,则可以执行以下操作:

modelBuilder.Types()
            .Where(t => t.IsSubclassOf(typeof(MyBaseClass)))
            .Configure(c => c.Ignore("IsDeleted"));
Run Code Online (Sandbox Code Playgroud)


Mas*_*ton 2

您可以[NotMapped]在属性上使用注释,但仍然需要为每个实体添加注释,这与仅指定一次并具有忽略它的约定不同。