Как выбрать через отношения с помощью LINQPad? - PullRequest
0 голосов
/ 20 мая 2009

У меня простая структура таблицы

Images(image_id, image_library_id,...)

Links(link_id, image_id, link_component_code...)

Я пытаюсь выполнить простой запрос, используя LINQ

var q = from i in Images where i.Link.link_component_code = "x" select i;

Однако IntelliSense в LINQPad не предоставляет объект "Link" в

where i.Link.link_component_code

вместо этого я получаю только объект "Links", который является EntitySet и не перечисляет поля таблицы, а только методы, такие как Add, Select, Where и т. Д.

Однако, если я сделаю это наоборот

var q = from l in Links where l.Image.image_library_id = 1234 select l;

Работает как положено

Что это за EntitySet и где я ошибаюсь?

Ответы [ 2 ]

1 голос
/ 20 мая 2009

Способ установки ваших отношений, каждое изображение в виде 0 или более ссылок (много ссылок). Свойство Links изображения - это запрашиваемая коллекция связанных записей ссылок.

Попробуйте это где пункт

where i.Links.Any(link => link.link_component_code == "x")
0 голосов
/ 21 мая 2009

Есть ли более одной ссылки на изображение? Если нет, ограничьте поле image_id в таблице ссылок, чтобы оно было уникальным. Тогда вы должны получить ожидаемые результаты.

...