是否可以在EF中以一对一的关系分配外键?

时间:2015-11-26 13:42:01

标签: c# entity-framework ef-code-first entity-framework-6

我有这些课程。

public class Foo
{
  public int FooId { get; set; }
  public string FooName { get; set; }
}

public class Bar
{
  public int BarId { get; set; }
  public int FooId { get; set; }
  public string BarName { get; set; }

  public Foo Foo { get; set; }
}

public class Fox
{
  public int FoxId { get; set; }
  public int BarId { get; set; }
  public string FoxName { get; set; }

  public Bar Bar { get; set; }
}

是否可以确定将key用作外键?比方说,在Bar课程中,我想将FooId指定为Foo课程的外键,它与Fox相同,指定BarId为FK到Bar

  1. 使用流畅的api。它会自动将主键指定为外键。有没有办法覆盖它?

  2. 另外,我想问一下这个设计是好还是坏。这是一个合理的设计吗?或者我应该为他们创建一个类?

  3. 请让我知道你的想法。

    修改

    尽可能地,我不想在我的课程中使用数据注释。

1 个答案:

答案 0 :(得分:1)

如果您想要一对一的关系,您的主键也应该是外键。例如,在类BarFooId应该是主键和外键。请参阅此链接以获取解释:http://www.entityframeworktutorial.net/code-first/configure-one-to-one-relationship-in-code-first.aspx