遗留代码:代码首先一对一或零关系

时间:2014-03-12 13:13:54

标签: entity-framework code-first legacy-code

我有以下遗留代码片段我无法更改

public class EntityA
{
  int SeqId { get; set; }  //Not part of the key

  [Association("EntityB", "Seq_ID", "Seq_ID")]
  public EntityB EntityB { get; set; }
}

public class EntityB
{
  [Key]
  int SeqId { get; set; }
}

数据库是通过SQL而不是Entity Framework创建的。没有外国人 键和关系被处理为一对一/零。

现在,我们必须首先使用模型代码,实体框架添加外键关系。 由于我无法更改模型,但我可以覆盖 OnModelCreating 事件,我想要 重写从必需到可选的关系。我试图添加

modelBuilder.Entity<EntityA>().Property(i => i.EntityB).IsOptional();

modelBuilder.Entity<EntityA>().HasOptional(i => i.EntityB).WithOptionalDependent()

但在两种情况下,实体框架都会抱怨。

1 个答案:

答案 0 :(得分:0)

我们使用了以下解决方法:

创建模型后直接删除外键。不漂亮但有效。