Левое соединение вместо внутреннего соединения при использовании разбиения сущностей - PullRequest
1 голос
/ 13 июня 2011

В дополнение к этому вопросу я взял ответ Ладислава Мрнки .

Проблема в том, что некоторые записи таблицы 1 не отображаются.Поэтому я использовал профилировщик сервера sql и вижу, что выполняемый запрос использовал INNER JOIN, где мне нужно сделать LEFT JOIN.

В таблице 1 у меня есть данные, которые не совпадают в таблице 2, и эти данные должны появиться.

Как я могу решить эту проблему?

Ответы [ 2 ]

2 голосов
/ 13 июня 2011

ключ DefaultIfEmpty ()

var query =
from t1 in Table1
join t2 in Table2
on t1 equals t2 into NewTable
from result in NewTable.DefaultIfEmpty()
select (Your select)
1 голос
/ 13 июня 2011

В таком случае вы не можете использовать разделение сущностей, как было задано в предыдущем вопросе. Разделение сущностей требует, чтобы обе части сопоставленной сущности существовали и поэтому использовали внутреннее соединение. Либо измените вашу базу данных, чтобы иметь обе части для каждой сущности, либо удалите разделение сущностей и используйте Table1 и Table2 напрямую, чтобы контролировать созданный запрос.

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