none
Настройка Relatoins между таблицами в VS 2012 RRS feed

  • Вопрос

  • В 2010-й студии, было такое окошко, под названием Foreign Key Relationships где можно было нажать add, указать имя релейшена, выбрать Primary Key Table, Foreign Key Table и для каждой из таблиц выбрать первичный и внешний ключи.

    В 2012-й студии, это окошко убрали, заменив его не совсем понятным механизмом добавления этих ключей.

    В дизайнере таблицы справа есть Keys и ниже Foreign Key, кликаю туда, жму добавить новый внешний ключь....и потом в коде указывать таблицу и колонку ?

    Может есть более удобный способ?

    Нужно получить вот такую картинку (желаемое дорисовал красным)

    И что такое в данном случае Navigation properties? Например в табличке Post должно быть Comments and Tags это просто указываются таблицы, на которые есть ссылки ? Но в таком случае, что такое Post1 и Post2 ? У меня в базе нет таких таблиц, и на диаграмме их нет. 

    14 сентября 2013 г. 8:09

Ответы

Все ответы

  • "Может есть более удобный способ?"- насколько знаю нет. Чтобы иметь возможность работать с БД более комфортно используйте SSMS 2012.

    На втором рисунке у вас вроде диаграмма сущностных классов Entity Framework. Навигационные свойства - это просто перекрёстные ссылки между классами. Но вот их не всегда можно отобразить напрямую на реляционную модель БД в случае отношений многие ко многим, так как в реляционной модели для этого требуется дополнительная таблица.


    Сделаем содержимое сообщества лучше, вместе!

    14 сентября 2013 г. 8:28
    Модератор
  • Так а как мне все-таки установить связь, как показано красным на рисунке?

    Только в коде руками ?

    14 сентября 2013 г. 8:41
  • "Например в табличке Post должно быть Comments and Tags это просто указываются таблицы, на которые есть ссылки ?" - в коде не таблиц, есть классы.

    "Так а как мне все-таки установить связь, как показано красным на рисунке? Только в коде руками ?" - вам надо содать открытое свойство типом которого будет целевой класс (на который он будет ссылаться).

    "Но в таком случае, что такое Post1 и Post2 ? У меня в базе нет таких таблиц, и на диаграмме их нет." - возможно это циклические ссылки на самого себя (т.е. на сущность того же типа).


    Сделаем содержимое сообщества лучше, вместе!

    14 сентября 2013 г. 8:56
    Модератор
  • "Например в табличке Post должно быть Comments and Tags это просто указываются таблицы, на которые есть ссылки ?" - в коде не таблиц, есть классы.

    Я создал базу, в ней создал таблицы, все визуально, в дизайнере...SQL код этих таблиц сгенерился автоматом (см. самую первую картинку) никакие классы я не писал. Вопрос то вроде простой....как установить внешний ключ для таблицы ПОСТС и связать ее с ТАГС ? Аналогично тому, как ПОСТС связана с КОММЕНТС ? 
    14 сентября 2013 г. 9:26
  • Установите внешние ключи в базе данных, а код сущностных классов сгенерируйте заново.

    Сделаем содержимое сообщества лучше, вместе!

    15 сентября 2013 г. 5:56
    Модератор
  • Установите внешние ключи в базе данных

    Так собственно вопрос как раз в том и заключался...как именно это сделать? В 2010-й студии был Foreign Key Relationships менеджер, в 2012-й его нет. Как установить эти ключи? Только так как проиллюстрированио на 1-м скриншоте? ... т.е. руками прописывать в SQL ?

    16 сентября 2013 г. 5:21
  • Придётся вручную, другого варианта вроде нет. Или можете использовать SSMS.

    Сделаем содержимое сообщества лучше, вместе!

    16 сентября 2013 г. 5:53
    Модератор