如何在Entity Framework 3中映射0..1到1的关系

时间:2010-04-08 14:30:06

标签: entity-framework

我有两个表,用户地址。用户表具有映射到地址表的主键的字段。该字段可以为空。

简单来说,地址存在独立于其他对象。用户可以与一个地址相关联。在数据库中,我将此设置为外键关系。

我正在尝试在实体框架中映射此关系。我在以下代码中遇到错误:

<Association Name="fk_UserAddress">
      <End Role="User" Type="GenesisEntityModel.Store.User" Multiplicity="1"/>
      <End Role="Address" Type="GenesisEntityModel.Store.Address" Multiplicity="0..1" />
      <ReferentialConstraint>
        <Principal Role="Address">
          <PropertyRef Name="addressId"/>
        </Principal>
        <Dependent Role="User">
          <PropertyRef Name="addressId"/>
        </Dependent>
      </ReferentialConstraint>
    </Association>

它给出了“多重性的下界必须为0”的错误。

如果有人能解释错误,以及解决错误的最佳方法,我将不胜感激。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

错误的原因是因为具有外键(User)的表可能具有大于主(Address)表的多重性。您在第一段中描述的数据库关系是1地址 - 到0或许多用户。 EF关系不能为零作为主表的选项。