2014-10-08 100 views
-3

我怎麼能這個查詢語法轉換方法的語法在LINQ:LINQ轉換查詢語法方法的語法

   return (from x in db.Table1 
        join y in db.Table1 on x.ID equals y.ID - 1 
        where Convert.ToInt32(y.ID) >= Convert.ToInt32(x.ID) 
        orderby x.Name 
        select x).Distinct(); 

哪種方法更好?我更喜歡這種查詢方法,但我被要求使用看起來太臃腫的方法語法。

由於提前,Laziale

+0

兩者都同樣良好。查詢語法將被轉換爲方法語法,但這是微不足道的性能影響。 – 2014-10-08 06:58:39

+1

@jmcilhinney我想知道如何做ON部分和WHERE加入同一張桌子。謝謝你的幫助。 – Laziale 2014-10-08 07:01:20

+0

你在搜索時發現的例子有什麼不明白的地方?這個問題的原因是「我不會因爲嘗試而煩惱,你爲我做的」。如果你不知道,那麼你不可能真的看起來太難。如果你確實有一些想法,你嘗試了什麼,嘗試了什麼? – jmcilhinney 2014-10-08 07:04:18

回答

1
var results = db.Table1.Join 
    (
     db.Table1, 
     x=>x.ID, 
     x=>x.ID - 1, 
     (x,y)=>new{OuterTable = x, xid = x.ID, yid = y.ID} 
    ) 
    .Where(x=>Convert.ToInt32(x.yid) >= Convert.ToInt32(x.xid)) 
    .Select(x=>x.OuterTable) 
    .OrderBy(x=>x.Name) 
    .Distinct(); 
相關問題