实体框架 - 外键上的双向一对一关系

时间:2013-11-28 16:10:31

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

我有两个实体,比如Hat和Owner:

+========+          +=========+
|Owner   |----------|Hat      |
+--------| 0/1    1 +---------|
|ID      |          |ID       |
|Name    |          |Size     |
+--------|          +---------|
|HatId   |          |OwnerId  |
+========+          +=========+

(每个所有者都有他的帽子。有些帽子没有他们的主人。)

我创建了模型:

public class Owner
{
    [Key]
    public Int32 ID { get; set; }
    public String Name { get; set; }
    public virtual Hat Hat { get; set; }
}

public class Hat
{
    [Key]
    public Int32 ID { get; set; }
    public Int32 Size { get; set; }
    public virtual Owner Owner { get; set; }
}

此时我发现:

  • 我可以在主键上创建一对一的关系 - 我不想要,因为Hat可以更改他的所有者,但是Hat的ID和所有者的ID在创建后永远不会改变。
  • 我可以创建一对多的关系 - 但是在这里我无法在“很多”方面创建外键,这将自动更新。

所以提问: 是否可以在Entity Framework中的外键上创建双向一对一关系?

0 个答案:

没有答案