Я хочу иметь одну таблицу, которая представляет человека, и иметь ряд других таблиц (например, ученик / учитель), использующих таблицу Person для хранения информации, связанной с человеком. К сожалению, структура сущностей, похоже, не нравится, когда я пытаюсь добавить связь между классом ученика или учителя, и я не понимаю, почему. Таблица Person содержит столбец с именем ParentEntityID, который равен либо StudentEntityID, либо TeacherEntityID. В идеальном мире я хотел бы иметь возможность ссылаться на таблицу Person, выбрав Student.Person.FirstName вместо Student.Entity.Person1.FirstName. Ошибка .Net возвращается при попытке подключить таблицу ученика / учителя к таблице Person:
Ошибка 3007: проблема в отображении
Фрагменты, начинающиеся со строк 265, 289:
Столбцы без первичного ключа
[ParentEntityID] сопоставляется в
оба фрагмента разные концептуальные
свойства стороны - несоответствие данных
возможно, потому что соответствующий
концептуальные побочные свойства могут быть
независимо изменены.
Реальная база данных, с которой я работаю, немного сложнее и имеет несколько таблиц, связанных с таблицей сущностей, что делает мою объектную модель довольно неоднозначной и надеется немного ее почистить, используя сущность рамки.
Я не большой гуру баз данных, обычно я работаю над интерфейсом ... Можно ли сделать то, что я хочу, или есть лучшее решение?
Я использую VB.Net 3.5 в веб-приложении.
альтернативный текст http://commonfish.com/images/2010-stackoverflow1.png
Обновление ...
В попытке усвоить различные типы отношений, которые я могу сформировать, я играл на этом простом примере и предложил следующие возможности:
альтернативный текст http://commonfish.com/images/2010-stackoverflow2.png
альтернативный текст http://commonfish.com/images/2010-stackoverflow3.png
И причина, по которой я не могу установить связь между таблицей «Студент» и «Адрес», заключается в том, что эта связь не поддерживается в базе данных. Если бы я хотел связать эти две таблицы, мне нужно было бы переосмыслить дизайн моей базы данных. Это верно? То, что я хочу сделать, не поддерживается Entity Framework?
Также, глядя на страницу, на которую ссылается мистер Пратт , звучит так, как будто .Net 4 поддерживает ассоциации внешних ключей, что я и пытаюсь сделать. Я правильно истолковываю эту статью ??