2010-03-12 96 views
3

在一個WPF應用程序,我想檢查是否LINQ to SQL的查詢返回包含一些記錄,但是我的方法是行不通的:如何檢查LINQ to SQL查詢的結果?

 TdbDataContext context = new TdbDataContext(); 
     var sh = from p in context.Items where p.Selected == true select p; 

     if (sh == null) 
     { 
      MessageBox.Show("There are no Selected Items"); 
     } 

我在哪裏錯了?

回答

8

linq查詢永遠不會爲空,因爲它總是會返回一個IQueryable。請嘗試撥打sh.Any()來代替。

if (!sh.Any()) 
    MessageBox.Show("There are no Selected Items"); 
+0

...或sh.Count,當然:) – kiwipom

+0

@IanR:'IQueryable'沒有'Count'屬性。 'Any()'是正確的答案。 –

+0

@ 280Z28 - 對不起,我的錯,我正在考慮Count()擴展方法,但正如其他人指出的,這將枚舉順序.. +1從我的任何(),無論如何:) – kiwipom

1
var query = (from k in context.invis select k.invoice); 
    if (query.Count() > 0) 
    { 

    } 
    else 
    { 

    } 
    //