如何为实体框架复杂类型添加导航属性

时间:2009-10-23 16:57:57

标签: visual-studio entity-framework linq-to-entities

我正在使用VS2010 Beta 2,我有一个称为地址的复杂类型,具有以下属性:

  • CountryId

我的模型中定义了国家/地区实体,但我似乎找不到从 CountryId 属性中添加引用(导航属性)的方法我的复杂类型为国家/地区实体的 ID 属性。

我是以错误的方式来做这件事,还是我不能与设计师做的事情?......

我的另一个选择就是创建一个Address实体,但它对我来说听起来不对。

2 个答案:

答案 0 :(得分:5)

不,你不能这样做,因为它违背了复杂类型和导航属性的想法。复杂类型具有值语义,而不是引用标识。导航属性是第一类实体并具有引用语义。因此,它们不能成为复杂类型的一部分。您似乎已经发现,解决方案是将具有值语义的部分分区为复杂类型,并将其添加到包含所需导航属性的实体中。

答案 1 :(得分:2)

确定,

似乎当前版本的Entity Framework不支持复杂类型中的导航属性或外键。

另一个明智的选择是创建一个单独的地址实体,它将拥有所需的所有外键,然后在我所有其他实体中创建导航属性。

相关问题