代码之家  ›  专栏  ›  技术社区  ›  Hector Minaya

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

  •  4
  • Hector Minaya  · 技术社区  · 15 年前

    我使用的是VS2010测试版2,我有一个复杂的类型 地址 具有以下属性:

    • 街道
    • 西蒂
    • 乡下人

    我有一个 国家 实体在我的模型中定义,但我似乎找不到从 乡下人 我的复杂类型的属性 身份证件 我的财产 国家 实体。

    我这样做是错误的,还是我不能和设计师合作?……

    我的另一个选择是创建一个地址实体,但它听起来不太合适。

    2 回复  |  直到 15 年前
        1
  •  5
  •   Craig Stuntz    15 年前

    不,您不能这样做,因为这违背了什么是复杂类型和导航属性的概念。复杂类型具有值语义,而不是引用标识。导航属性是第一类实体,具有引用语义。因此,它们不能是复杂类型的一部分。正如您所发现的,解决方案是将具有值语义的部分划分为复杂类型,并将其添加到包含所需导航属性的实体中。

        2
  •  2
  •   Hector Minaya    15 年前

    好啊,

    实体框架的当前版本似乎不支持复杂类型中的导航属性或外键。

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