有三个实体:
class A
{
public int Id { get; set; }
public string Z { get; set; }
public virtual B Bc { get; set; }
public virtual C Cc { get; set; }
}
class B
{
public int Id { get; set; }
public string X { get; set; }
public virtual A Ac { get; set; }
}
class C
{
public int Id { get; set; }
public string Y { get; set; }
public virtual A Ac { get; set; }
}
我希望' A'课程与' B'一对一连接。上课或' C'但是只有其中一个。 数据库中的表之间已准备好一对一连接。
我尝试使用流畅的映射来建立他们的关系,但是当我想插入A时总是出错:
发生了参照完整性约束违规:' A.ID'的属性值。在一段关系的一端与' B.ID'的财产价值不匹配。在另一端。
modelBuilder.Entity<A>()
.HasOptional(x => x.B)
.WithRequired();
modelBuilder.Entity<A>()
.HasOptional(x => x.C)
.WithRequired();
OR
modelBuilder.Entity<B>()
.HasRequired(t => t.A)
.WithOptional(t => t.B);
modelBuilder.Entity<C>()
.HasRequired(t => t.A)
.WithOptional(t => t.C);
请问是什么解决方案?
修改