我正在使用VS2010 Beta 2,我有一个称为地址的复杂类型,具有以下属性:
我的模型中定义了国家/地区实体,但我似乎找不到从 CountryId 属性中添加引用(导航属性)的方法我的复杂类型为国家/地区实体的 ID 属性。
我是以错误的方式来做这件事,还是我不能与设计师做的事情?......
我的另一个选择就是创建一个Address实体,但它对我来说听起来不对。
答案 0 :(得分:5)
不,你不能这样做,因为它违背了复杂类型和导航属性的想法。复杂类型具有值语义,而不是引用标识。导航属性是第一类实体并具有引用语义。因此,它们不能成为复杂类型的一部分。您似乎已经发现,解决方案是将具有值语义的部分分区为复杂类型,并将其添加到包含所需导航属性的实体中。
答案 1 :(得分:2)
确定,
似乎当前版本的Entity Framework不支持复杂类型中的导航属性或外键。
另一个明智的选择是创建一个单独的地址实体,它将拥有所需的所有外键,然后在我所有其他实体中创建导航属性。