实体框架 - 将属性从子类移动到基类

时间:2017-01-27 09:25:52

标签: entity-framework entity-framework-6

我试图将属性租户(类型租户)从子类移动到基类。我使用TPH策略,因为我已经有了Tenant_Id列,我预计迁移不会发生任何变化。

然而,实体框架会产生这样的迁移:

DropForeignKey("dbo.JobDetailsBases", "Tenant_Id", "dbo.Tenants");
AddColumn("dbo.JobDetailsBases", "Tenant_Id1", c => c.Guid());
CreateIndex("dbo.JobDetailsBases", "Tenant_Id1");
AddForeignKey("dbo.JobDetailsBases", "Tenant_Id1", "dbo.Tenants", "Id");

如何告诉EF使用同一列?出于显而易见的原因,我不想要列Tenant_Id1。

更新:我试图分两步完成。首先从子类中删除属性,生成迁移,然后添加基类并生成另一个迁移。我希望这会改善情况 - 它没有。

问题是第一次迁移是空的 - EF不想删除该字段。我更新了迁移以删除它,但它仍然以某种方式保留在模型中。结果是,即使我添加了这个,EF也会生成它(仍然使用Tenant_Id1):

AddColumn("dbo.JobDetailsBases", "Tenant_Id1", c => c.Guid());
CreateIndex("dbo.JobDetailsBases", "Tenant_Id1");
AddForeignKey("dbo.JobDetailsBases", "Tenant_Id1", "dbo.Tenants", "Id");

所以现在的问题是:如何改变内部EF模型以摆脱我已经从课程中删除的原始属性?

0 个答案:

没有答案