2011-07-13 105 views
0

這可能是普通SQL命令優於LINQ的情況之一。這裏的SQL語句,我想翻譯的簡化版本:如何將基於子查詢的SQL語句轉換爲LINQ

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查詢拉記錄時上的ID剛剛加盟,我已經看到了如何加入多個列,但我有不知道如何將子查詢插入混合中。 如果這不是完全清楚,請讓我知道,我會編輯精心製作。

+0

感謝您提高查詢的可讀性! – joelmdev

回答

1

也許是這樣的?

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 }; 
+0

幾個語法錯誤,但它釘牢它。非常感謝! – joelmdev