2010-05-26 63 views
4

我期待從Linq返回查詢結果,以便將ID傳遞給查詢。因此,這將是這個樣子:如何按照我提供的ID順序從Linq查詢中獲取結果?

var IDs = new int [] { 5, 20, 10 } 

var items = from mytable in db.MyTable 
      where IDs.Contains(mytable.mytableID) 
      orderby // not sure what to do here 
      select mytable; 

我希望得到的IDs(5,20,10)的訂單項目。

(請注意,這類似於this question,但我想這樣做的LINQ的,而不是SQL)

+0

它的LINQ沒有鏈接;) – 2010-05-26 22:42:38

+0

@Abe-謝謝你的追捕! – Keltex 2010-05-26 23:45:57

+0

愚蠢的拼寫檢查軟件 – ecounysis 2010-05-27 04:55:43

回答

1

我只是在SQL查詢之外執行它。在這種情況下,在SQL Server上完成它實際上沒有任何好處。

var items = (from mytable in db.MyTable 
      where IDs.Contains(mytable.mytableID) 
      select mytable) 
      .ToArray() 
      .OrderBy(x => Array.IndexOf(ids, x.mytableID)); 
1

這應該一起工作LINQ到對象;雖然我不確定它是否與LINQ-to-SQL一樣:

var ids = new int [] { 5, 20, 10 }; 

var result = from item in items 
      where Array.IndexOf(ids, item.Id) >= 0 
      orderby Array.IndexOf(ids, item.Id) 
      select item; 
相關問題