【发布时间】:2013-07-23 12:37:30
【问题描述】:
我正在尝试在与实体之间建立可选关系,但我无法找到正确的语法。实际上我需要一个 0..1 到 0..2 的关系,但我猜一旦我找到了实现 0..1 到 0..1 的方法,这将是微不足道的。
我所拥有的简化是这样的:
class Foo
{
int Id { get; set; }
//navigation property
virtual Bar Bar { get; private set; }
}
class Bar
{
int Id { get; set; }
int? LeftFooId { get; set; }
[ForeignKey("LeftFooId")]
Foo LeftFoo { get; set; }
int? RightFooId{ get; set; }
[ForeignKey("RightFooId")]
Foo RightFoo { get; set; }
}
一个 Foo 可以连接到零个或一个 Bar,永远不会更多。一个 Bar 可以有一个 LeftFoo 和一个 RightFoo,或者一个或一个都没有。如果 Foo 的 Bar 属性没有被 Bar 引用,它应该为 null,并且它应该包含被 Bar 引用时引用它的 Bar。
上面的代码 Bar 正确引用了 Foo,但是 EF 给 Foo 表一个 Bar_Id 并且 Bar 属性始终为空。
我尝试了几种不同的方法来设置这些实体类,并使用了不同的 Fluent API 调用来完成这项工作,但我没有得到想要的结果。
【问题讨论】:
标签: ef-code-first entity-framework-5