2009-06-07 4 views
3

Я использую технику TPH (таблица для иерархии) для отображения набора объектов.Entity Framework - ассоциация из производных объектов

DB Schema: Таблица UserGroupLabelSpreads с полями «UserId», «GroupId» и «LabelId» с некоторыми дополнительными общими полями.

DAL Объекты: - UserGroupLabelSpread абстрактный класс. - UserSpread с дискриминатором, имеющим только ненулевой UserId. - GroupSpread с дискриминатором, имеющим только ненулевой GroupId. - LabelSpread с дискриминатором, имеющим только ненулевой LabelId.

Мне удалось заставить эту работу работать, но когда я пытаюсь подключить сущность UserSpread к существующей сущности «Пользователь», я получаю следующую ошибку: Ошибка 1 Ошибка 3034: Проблема при отображении фрагментов начиная с строк 487, 554: два объекта с разными ключами отображаются в одну строку. Убедитесь, что эти два фрагмента отображения не отображают две группы объектов с перекрывающимися ключами в одну и ту же группу строк.

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

Я прав с моим предположением? Могу ли я заставить эту работу работать?

Thanks, Nir.

+1

К сожалению, правильная ошибка: Ошибка Ошибка 3007: Проблема в картированию фрагментов, начиная с линии 242, 272: несырьевых-Key колонка (s) [UserId] в настоящее время отображаются в обоих фрагментов к различным концептуальным боковые свойства - несогласованность данных возможна, поскольку соответствующие концептуальные боковые свойства могут быть независимо изменены. – nirpi

ответ

2

Существует обновленная версия EDM Generator, которая должна быть в состоянии вам помочь. Вы можете использовать его для генерации, проверки и т. Д. Извините, неверная ссылка. Here is the one to v2. Я считаю, что у меня была эта проблема. Если я не ошибаюсь, это было связано с неправильным отображением неправильных ключей. Тем не менее, я использовал бета-версию 1 EF4, и некоторые из сообщений были неправильными из-за прокси. Проверьте свои ключи forreign. Blog.Id ---> Blog_id была моей проблемой. У меня был Blog.Id -> Blog.Id, а затем BlogEntry.Id ----> Blog.Blog_Id, который, конечно же, не работает, но дизайнер отчасти неумолимо, когда дело доходит до сопоставления ключей.

Смежные вопросы