LINQ to SQL Таблица поиска? Присоединиться возможно? Я потерялся... ;/ - PullRequest
0 голосов
/ 09 июня 2009

Не уверен, если это называется таблицей поиска ... Вот скриншот схемы: http://apoads.com/db-schema.png

Я хочу присоединиться к таблице Ad и MilBase, где MilBase.BaseID является заданным значением. В результате я хотел бы иметь возможность доступа к данным следующим образом: ad.MilBase.BaseName и т.д ...

Я просто не могу сейчас сосредоточиться на этом ...; /

1 Ответ

1 голос
/ 09 июня 2009

Ваша проблема в том, что ваша схема имеет семантику отношения многие-ко-многим между Ad и MilBase, и поэтому действительно желаемым способом сделать это в LINQ будет ad.Milbases, который затем будет содержать Коллекция Милбаз.

Проблема не усугубляется тем фактом, что LINQ To SQL не поддерживает отношения «многие ко многим» напрямую и в реальности (при условии, что ваша справочная таблица определяет только один-к-одному или один-к-одному много отношений) вам придется сделать что-то вроде

ad.Adbases.Single().MilBase

Конечно, при условии, что всегда будет один - если это не так, то у вас впереди более сложные вещи.

Конечно, объединение также всегда возможно - в любом случае - если это не та информация, которую вы искали, не могли бы вы уточнить отношения между Ad и Milbase? (многие ко многим и т. д.?). Кроме того - если это не много ко многим, и вы можете это сделать, я действительно изменил бы его на внешний ключ либо в Milbase, либо в таблице объявлений.

РЕДАКТИРОВАТЬ: в ответ на ваш комментарий,

Вы могли бы сделать что-то вроде

var query = from a in db.ad
            select new {
               a.property1,
               a.property2,
               ...
               Milbases = a.Adbases.Select(s => s.Milbase)
            };

Очевидно, что код не будет компилироваться, но он должен дать вам приблизительное представление - также я уверен, что это можно сделать лучшими способами, но что-то подобное должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...