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

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

我有一个相当大的 EF 模型,我试图避免遍历每个类并寻找 enum 类型的属性并设置 [NotMapped]属性在它们之上。我希望写的是这样的

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

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

最佳答案

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

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

关于c# - EF6 忽略(NotMapped)所有枚举类型属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22666966/

相关文章:

c# - AutoMapper ResolveUsing 未被调用

c# - 如何使用 NumericUpDown 计算文本框值的总数?

c# - 办公文件转PDF

c# - 在上传时将图像转换为 png

c# - 不允许在 int 属性 MVC C# 中使用负值

c# - 如何使用 C# 运行 sql 脚本

c# - 搜索目录树时使用 SearchOption 或递归搜索的 Directory.GetFiles

c# - Entity Framework 查询以包括实体集合的子实体

entity-framework - DBContext 添加/附加事件?

c# - 如何在 asp.net mvc 中动态更改连接字符串