这个问题基本上是关于EF4 CTP的this question重复,但特定于EF 5。
我设置了POCO
public class ClassPrinciple
{
public int ClassPrincipleID { get; set; }
public virtual ClassDependent ClassDependent{ get; set; }
}
和
public class ClassDependent
{
public int ClassDependentID { get; set; }
public virtual ClassPrinciple ClassPrinciple{ get; set; }
}
在我的模型构建器中,我创建了这样的可选一对一映射
modelBuilder.Entity<ClassPrinciple>().HasOptional(p => p.ClassDependent)
.WithOptionalDependent(s => s.ClassPrinciple);
这会在ClassPrinciples表上创建一个名为ClassDependent_ClassDependentID的列。我希望能够通过ClassPrinciple模型上的属性引用此列中的数据,但我似乎无法这样做。我在此问题顶部链接的网页说明:
EF通常仅支持在您的实体上公开FK属性 一:很多关系(除非FK也是PK)。这是 有点人为,但EF的副作用不支持非PK 独特的约束。我们正致力于支持独特的约束 对于EF而言,它不会出现在我们的第一个代码RTM中 第一
很抱歉没有更好的答案,因为确实没有解决方法 在这个阶段。
这仍然是这种情况还是有办法解决这个问题。我已经尝试了流畅的api映射到各种组合的列和数据注释,但没有成功。
答案 0 :(得分:0)
使用此代码:
public class ClassPrinciple
{
public int ClassPrincipleID { get; set; }
public int ClassDependentId { get; set; }
[ForeignKey("ClassDependentId")]
[InverseProperty("ClassPrinciple")]
public virtual ClassDependent ClassDependent{ get; set; }
}
public class ClassDependent
{
public int ClassDependentID { get; set; }
[InverseProperty("ClassDependent")]
public virtual ClassPrinciple ClassPrinciple{ get; set; }
}