0

我有一个关于实体框架的问题。在代码优先场景中,我有一个引用地址的人员类。在我的域中,我会将其作为对 Address 类的引用。我见过的所有实体框架示例也需要一个 AddressId 字段。这是我认为不应该存在并且在我的域驱动模型中不需要的东西。

为什么EF需要这个?我可以没有它吗(我不相信 NHibernate 需要这个)。

谢谢

public class Person()
{
    public int Id {get;set;}
    public string Name {get;set;}
    public Address Address {get;set;}
    public int AddressId {get;set;} //Entity Framework seems to require this
}
4

2 回答 2

1

不需要外键。事实上,对外键的支持是在 EF4 中引入的。通常,FK 是为了方便。在许多情况下,FK 有助于提高性能,因为如果您知道 id(保存一次到数据库的行程),您可以在不加载相关实体的情况下更改关系。

于 2012-10-21T19:07:18.170 回答
0

您应该阅读独立关联和外键关联: 代码优先:独立关联与外键关联?

来自回答上述问题的同一作者的一篇好文章也可以在以下位置找到: foreign-key-vs-independent-associations-in-ef-4

于 2012-10-22T11:28:59.397 回答