EF6忽略(NotMapped)所有枚举类型属性

时间:2014-03-26 16:14:10

标签: c# .net entity-framework enums model-binding

我有一个非常大的EF模型,我试图避免浏览每个类并捕获enum类型的属性并在它们之上设置[NotMapped]属性。我正在跳的是写这样的smth

protected override void OnModelCreating(DbModelBuilder modelBuilder){
  modelBuilder.Properties<enum>().Configure(p=>p.Ignore());
  ....

modelBuilder.Properties().Where(p=>p.GetType().IsEnum).Configure(p=>p.Ignore());

1 个答案:

答案 0 :(得分:3)

您可以忽略类型配置级别的属性,因此您需要从modelBuilder.Types()开始,而不是从modelBuilder.Properties()开始:

modelBuilder.Types().Configure(typeConfiguration =>
{
    foreach (var property in typeConfiguration.ClrType
        .GetProperties().Where(p => p.PropertyType.IsEnum))
    {
        typeConfiguration.Ignore(property);
    }
});