Нет способа запросить соединительную таблицу - PullRequest
1 голос
/ 27 января 2011

Допустим, у меня есть две таблицы, A и B с отношением «многие ко многим», использующие соединительную таблицу AB.

Таблица A

AID int

Таблица B

BID int

Таблица AB

AID int
BID int

Моя задача - найти все строки в AB, где AB.AID = 2использование linq к платформе сущностей 4.

Часть проблемы заключается в том, что таблица AB не включена в модель сущностей.Только A и B включены в отношения «многие ко многим».Но так как мне не нужна информация от B, было бы бесполезно включать соединение «многие ко многим» для этой задачи.

Это тривиально с использованием SQL, но я не понимаю, как это сделатьэто используя linq to Entity Framework.

Ответы [ 2 ]

0 голосов
/ 28 января 2011

По моему опыту, лучший способ обойти эту проблему - добавить первичный ключ в таблицу AB, такой как ABID, чтобы он появился в вашем контексте.

Таким образом ваш запрос будет выглядеть примерно так:

var q = from ab in context.AB
        where ab.BID == 2
        select ab;

Я понимаю, что это решение не совсем идеально, но оно должно работать.

0 голосов
/ 27 января 2011
var q = from a in Context.TableA
        where a.TableB != null
        select new 
        {
            AID = a.AID,
            BID = a.TableB.BID
        };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...