忽略在EF6代码第一映射一些继承属性(.NET4不.NET4.5)(Ignore some inhe

2019-10-20 07:57发布

我第一次使用EF6代码.NET4(我应该履行的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属性。

Answer 1:

使用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());


文章来源: Ignore some inherited properties in EF6 code first mapping(.NET4 not .NET4.5)