Как отобразить отношения от 0,1 до 1 в Entity Framework 3 - PullRequest
1 голос
/ 08 апреля 2010

У меня есть две таблицы: Пользователи и Адрес . В пользовательской таблице есть поле, которое сопоставляется первичному ключу таблицы адресов. Это поле может быть пустым.

На простом английском языке Address существует независимо от других объектов. Пользователь может быть связан с одним адресом. В базе данных это настроено как отношение внешнего ключа.

Я пытаюсь отобразить эти отношения в 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 голосов
/ 08 апреля 2010

Причина ошибки заключается в том, что таблица с внешним ключом (Пользователь) потенциально имеет кратность больше, чем первичная (Адрес) таблица. Взаимосвязь базы данных, которую вы описываете в первом абзаце, равна 1 адресу - 0 или многим пользователям. Отношение EF не может иметь ноль в качестве опции для таблицы Primary.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...