0
我有以下的遗留代码片段我不能改变:遗留代码:代码首先一对一或零关系
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创建并且不与实体框架。没有外键 键和关系处理为一对一/零。
现在,我们必须首先使用模型代码,并且实体框架添加外键关系。 由于我无法更改模型,但我可以覆盖OnModelCreating事件,我想要 重写关系从必需到可选。我试图添加
modelBuilder.Entity<EntityA>().Property(i => i.EntityB).IsOptional();
和
modelBuilder.Entity<EntityA>().HasOptional(i => i.EntityB).WithOptionalDependent()
但在这两种情况下,实体框架抱怨。
什么是例外?数据库中的“Seq_ID”是否可以空? – haim770
我得到的例外: _多重性与角色'EntityA_EntityB_Target'中关系'EntityA_EntityB'中的参照约束冲突。 因为从属角色中的所有属性都是不可空的,所以主体角色的多重性必须为'1'._ Seq_ID不为空,并且可悲的是我无法更改它。 – StefanG