编程语言
首页 > 编程语言> > c#-在实体框架中获取忽略的属性

c#-在实体框架中获取忽略的属性

作者:互联网

我在EF的框架上工作.我想获取一个实体的所有被忽略的属性以构建一些特殊查询.我该怎么做?

public class Customer
{
    public int Id { get; set; }
    public DateTime BirthDate { get; set; }
    public int Age { get; set; }
}

public class CustomerContext : DbContext
{
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Customer>().Ignore(customer => customer.Age);
        base.OnModelCreating(modelBuilder);
    }

    public DbSet<Customer> Customers { get; set; }
}

public static class DbContextExtensions
{
    public static List<string> GetIgnoredProperties(this DbContext context, string entityTypeName)
    {
         // ???
    }
}

解决方法:

我知道这并不能回答您的原始问题,在我的评论中我提到您应该使用反思,但这只是因为我看错了您的问题.

这是使用反射的替代方法,如果您不正确的话.

如果将[NotMapped]属性分配给您要忽略的类的属性,则可以使用反射来检索所有[NotMapped]属性.以下是如何实现此目的的示例.

var resultArray = yourClassInstance.GetType().GetProperties()
                            .Where(prop => Attribute.IsDefined(prop, typeof(NotMappedAttribute)));

希望这对您有所帮助.

标签:ef-code-first,entity-framework-6,entity-framework-5,c,entity-framework
来源: https://codeday.me/bug/20191118/2030662.html