2011-03-06 138 views
1
DataClassesDataContext db = new DataClassesDataContext(); 
var q = from Blog in db.tblBlogEntries where Blog.ID == EntryID select Blog; 

這將僅返回一條記錄,因爲Blog.ID是主鍵。Linq返回1條記錄

我怎麼那麼:

  • 檢查一番返回(EOF)
  • 訪問,而foreach循環返回的數據?

回答

4

可以使用SingleOrDefault()擴展。確保你檢查null。

var q = (from Blog in db.tblBlogEntries where Blog.ID == EntryID select Blog).SingleOrDefault(); 

if(q != null) 
{ 


} 
+0

。如果沒有滿足where條件,Single將引發異常。 – Pleun 2011-03-06 15:21:17

2

看看this answer關於從LINQ查詢檢索一個元素。

(我想你會想使用SingleOrDefault方法。)

+0

謝謝你,如果你通過你可能想使用單(),你總是期待的東西回來ID選擇完美的作品 – 2011-03-06 13:50:55

3
var data = q.FirstOrDefault(); // Or use SingleOrDefault if you want it to throw an error when the result has more than one element. 
if (data == null) 
    // Your query did not match any elements 
else 
    // The result element is in data variable.