2011-03-06 159 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.