Ссылка на преобразование TSQL в LINQ? - PullRequest
2 голосов
/ 14 февраля 2009

Я пытаюсь найти хороший справочник, чтобы помочь мне преобразовать этот оператор TSQL в Linq:

Пример:

SELECT * FROM Categories WHERE ProductID IN (SELECT ProductID FROM ProductCategories WHERE CatID = 23)

Я не могу найти нигде, где упоминается, как сделать ГДЕ "В".

Ответы [ 3 ]

2 голосов
/ 14 февраля 2009

Хотя это не точно ссылка TSQL на LINQ, я нашел для этой цели страницу 101 LINQ Samples на MSDN.

См. Также этот связанный вопрос

1 голос
/ 14 февраля 2009

Использование методов расширения ...

var productIDs = context.ProductCategories
                        .Where( c => c.CatID == 23 )
                        .Select( c => c.ProductID );
var categories = context.Categories
                        .Where( c => productIDS.Contains( c => c.ProductID ) );

РЕДАКТИРОВАТЬ : 101 Образцы Linq довольно хороший справочник для простых вещей. Для более сложных вещей я считаю, что мне обычно приходится прибегать к Google. К вашему сведению, если вы хотите выполнить поиск в StackOverflow, я обнаружил, что лучше использовать Google и указать site: stackoverflow.com. YMMV.

1 голос
/ 14 февраля 2009

Проверьте, работает ли это:

var qry = from c in Categories
          where (from pc in ProductCategories where pc.CatID = 23 select pc.ProductID).Contains(c.ProductID)
          select c;

Я не знаю, есть ли прямой перевод части IN WHERE в LinqToSQL (не найдено никакой ссылки), но я заменил ее на Contains.

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