忽略EF6代码中的一些继承属性第一个映射(.NET4而不是.NET4.5)

时间:2014-06-25 05:20:34

标签: c# entity-framework .net-4.0 ef-code-first mapping

我首先在.NET4中使用EF6代码(我应该在win xp上交付项目,因此我无法使用.NET4.5对其进行配置)。

我有一个BaseEntity类,所有其他实体都从它继承:

public abstract class BaseEntity
{
    public int Id {get; set;}
    public int X {get; set;} 
    public int Y {get; set;} 
}  
public class Calendar:BaseEntity
{
    // properties    
}

如果不为每个实体编写以下代码,我如何忽略所有实体中的X,Y属性?

   modelBuilder.Entity<Calendar>()
            .Ignore(t => t.X)
            .Ignore(t => t.Y)

请注意,我无法使用[NotMapped]属性,因为我使用的是EF6和.NET 4。

1 个答案:

答案 0 :(得分:2)

使用EntityTypeConfiguration代替modelBuilder.Entity<>

abstract class BaseEntityMapping : EntityTypeConfiguration<BaseEntity>
{
    public BaseEntityMapping()
    {
        this.Ignore(t => t.X);
        this.Ignore(t => t.Y);
    }
}

class CalendarMapping : BaseEntityMapping
{
    public CalendarMapping()
    {
        // Specific mappings
    }
}

OnModelCreating

modelBuilder.Configurations.Add(new CalendarMapping());