Как перевести оператор SQL с несколькими условиями соединения на основе подзапроса в LINQ - PullRequest
0 голосов
/ 14 июля 2011

Это может быть одна из тех ситуаций, когда простые команды SQL лучше, чем LINQ.Вот упрощенная версия оператора SQL, который я пытаюсь перевести:

SELECT * FROM IDTable AS idt 
INNER JOIN NameTable AS nt ON nt.IDTableID=idt.Id 
         AND nt.Id= (SELECT TOP(1) Id 
                     FROM NameTable AS nt2 
                     WHERE nt2.IDTableID=11 ORDER BY nt2.DateInserted DESC) 

У меня есть запрос LINQ для извлечения записей при простом объединении по идентификаторам, и я видел, как объединить несколько столбцов, ноЯ понятия не имею, как подключить подзапрос в микс.Если это не совсем понятно, пожалуйста, дайте мне знать, и я отредактирую, чтобы уточнить.

1 Ответ

1 голос
/ 14 июля 2011

Может как то так?

var results = from id in db.IDTable
              join n in db.NameTable on id.Id equals n.IDTableID
              where n.Id = (
                  from n2 in db.NameTable
                  where n2.IDTableID = 11
                  orderby n2.DateInserted desc
                  ).First()
              select new { id, n };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...