Что я делаю не так, чтобы получить "Два объекта с разными ключами отображаются в одну строку - PullRequest
0 голосов
/ 12 марта 2009

см. Изображения:

EF Designer

Таблицы SQL

«Две сущности с разными ключами отображаются в одну и ту же строку. Убедитесь, что эти два фрагмента сопоставления не отображают две группы сущностей с перекрывающимися ключами в одну и ту же группу строк».

Фактически, только одна из двух (или 6 здесь) сущностей будет иметь ключ для единственной строки.

Как я могу преодолеть это? SQL View, который объединяет их все в одну строку? Вычисляем столбец дискриминатора в ContactMethod? Как я должен был оформить таблицы по-другому, чтобы лучше работать с EF?

Или есть какое-то редактирование XML, которое я могу сделать, чтобы сохранить мою схему и просто сказать EF, чтобы я поверил, что я никогда не поместил один и тот же Id в более чем один класс с производными данными?

Вот: edmx , если это поможет.

Ответы [ 2 ]

3 голосов
/ 21 сентября 2009

Ссылка на файл edmx не работает. Возможно, вам нужно добавить тег условия

<Condition ColumnName="ContactId" IsNull="false" />

в ваш файл edmx с помощью xml-редактора:

<AssociationSetMapping Name="FK_Contact_ContactMethod" TypeName="SomeNamespace.FK_Contact_ContactMethod" StoreEntitySet="ContactMethod">
  <EndProperty Name="ContactMethod">
    <ScalarProperty Name="ContactMethodId" ColumnName="ContactMethodId" />
  </EndProperty>
  <EndProperty Name="Contact">
    <ScalarProperty Name="ContactId" ColumnName="ContactId" />
  </EndProperty>
  <Condition ColumnName="ContactId" IsNull="false" />
</AssociationSetMapping>
0 голосов
/ 12 марта 2009

Удаление внешних ключей для ContactMethod в базе данных избавило от ошибок, но, похоже, не правильно.

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