默认情况下忽略实体

时间:2015-02-25 19:14:38

标签: entity-framework

我有一个现有的数据库,我想为少数表/实体添加实体框架映射。有没有办法在默认情况下忽略所有实体,然后有选择地包含它们?

我在上下文构造函数中有这个不迁移更改:

Database.SetInitializer(new NullDatabaseInitializer<Context>());

然后我有以下流畅的代码来映​​射现有实体:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<Cube>()
        .Map(e => e.ToTable("tblCubes"))
        .HasKey(e => e.CubeId);
    ...

但是,当我运行任何EF查询时,我收到错误:

One or more validation errors were detected during model generation.
EntityType 'xyz' has no key defined. Define the key for this EntityType

不是在每个现有和未来的实体上使用modelBuilder.Ignore<xyz>();,而是我只能让EF默认忽略所有,并且只映射我选择/包含的那些?

EDIT ============

我的一个EF实体(CubeFact)具有与其他类相关的属性,如下面的Year类:

private Year _year;
public Int16 YearId { get; set; }
public Year Year { get { return _year ?? (_year = Year.GetYearById(YearId)); } set { _year = value; } }

Year类然后链接到Fact类,它是未通过验证的类之一。但是,Year类和Fact类都没有显式映射。 EF是否遵循这些关系然后进行验证,即使我没有明确告诉它关系?

0 个答案:

没有答案