我有一个现有的数据库,我想为少数表/实体添加实体框架映射。有没有办法在默认情况下忽略所有实体,然后有选择地包含它们?
我在上下文构造函数中有这个不迁移更改:
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是否遵循这些关系然后进行验证,即使我没有明确告诉它关系?