Linq To Sql Ассоциации - PullRequest
       26

Linq To Sql Ассоциации

0 голосов
/ 27 октября 2009

Итак, я создал dbml в своем проекте, в котором есть три таблицы: Elements, ElementImages и Images. Каждая запись Element может иметь несколько записей ElementImage, и каждая из этих записей ElementImage должна иметь одну запись Image. Первичный и внешний ключи настроены правильно, и ассоциации также определены правильно. Так почему я не вижу коллекции для каждого из объектов? Я ожидаю, что Element будет иметь коллекцию ElementImages, а ElementImage будет иметь свойство Image - но в моем Intellisense ничего этого не появляется. Я удалил и воссоздал dbml несколько раз, даже на других таблицах, но безрезультатно.

Ответы [ 3 ]

1 голос
/ 27 октября 2009

У меня никогда не было этой проблемы при перетаскивании из панели обозревателя сервера.

Мы используем bigint в качестве нашей PK / FK, поэтому я не могу сказать, что Guids - это то, что доставляет вам неприятности. Вы можете попробовать выполнить те же шаги, используя bigint / long, что и ваши PK, чтобы проверить, работает ли он для вас.

Я когда-либо испытывал это, когда думал, что настроил внешние ключи в таблице БД, но на самом деле забыл. В обозревателе серверов это сложно сказать с первого взгляда. Если они установлены правильно, вы должны увидеть стрелки между вашими таблицами на дизайнерской поверхности. Если вы не видите стрелки сразу, я подозреваю, что ваши FK установлены неправильно.

Используя панель свойств, вы можете изменить видимость свойств ассоциации. Нажатие на сами стрелки позволяет изменять родительские / дочерние свойства с помощью панели «Свойства». Обычно я отключаю дочернее свойство, но вы можете ограничить видимость родительского свойства только внутренней. Я предлагаю проверить их, чтобы убедиться, что они не отключены или их видимость установлена ​​ниже, чем вы ожидаете.

0 голосов
/ 17 сентября 2014

Отсутствие первичного ключа в родительской или дочерней таблице приведет к этой проблеме.

Если первичный ключ существует в базе данных, но поле не помечено в конструкторе как первичный ключ, просто щелкните правой кнопкой мыши по полю, выберите свойства и убедитесь, что для «Первичный ключ» установлено значение true. По крайней мере одно поле в таблице должно быть помечено, прежде чем разработчик создаст ассоциации.

0 голосов
/ 27 октября 2009

Какие типы полей используются для полей вашей базы данных? Некоторые из них не поддерживаются L2S. Появляются ли они в таблицах при переходе на поверхность dbml?

...