我有一个关于实体框架的问题。在代码第一个场景中,我有一个引用地址的人员类。在我的域中,我将此作为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
}
答案 0 :(得分:1)
不需要外键。实际上,EF4中引入了对外键的支持。通常,FK是为了方便起见。在许多情况下,FK有助于提高性能,因为如果您知道id(一次保存数据库),您就可以在不加载相关实体的情况下更改关系。
答案 1 :(得分:0)
您应该阅读独立协会和外国钥匙协会: Code First: Independent associations vs. Foreign key associations?
同一位作者回答上述问题的一篇好文章也可以在以下网址获得: foreign-key-vs-independent-associations-in-ef-4