Странная проблема с моим запросом Linq to Sql и ручным добавлением некоторых операторов JOIN - PullRequest
0 голосов
/ 28 октября 2009

моя модель Linq To Sql содержит некоторые объекты, которые приводят к тому, что сгенерированный код Sql равен LEFT OUTER JOINS. это правильно из-за того, как моделируются таблицы.

НО, для конкретного запроса я действительно знаю, что результаты всегда будут существовать в дочерней таблице. Таким образом, я надеялся изменить SQL с LEFT OUTER JOIN на INNER JOIN.

Ok. поэтому я подумал, что могу MANUALLY указать соединения. например.

from q in db.Foo
join a in db.Bar on q.Id equals a.Id
select q

Теперь, когда я проверяю SQL-оператор, который генерирует Linq, он содержит ОБА INNER JOIN (который я сделал выше) и LEFT OUTER JOIN!

Как я могу переопределить поведение соединения по умолчанию, чтобы только то, что я определяю в своем выражении linq, является тем, что используется / идет / является законом?

ура :) 1021 *

1 Ответ

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

В приведенном выше примере запроса он не должен выполнять никаких объединений, кроме одного объединения между Foo и Bar.

Вы случайно делаете что-то вроде:

from q in db.Foo
join a in db.Bar on q.Id equals a.Id
select new { q.SomeField, q.Bar.SomeOtherField }

Если это так, измените его на:

from q in db.Foo
join a in db.Bar on q.Id equals a.Id
select new { q.SomeField, a.SomeOtherField }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...