2011-12-06 66 views
2

我有以下代碼。最後的foreach是不必要的,因爲只會返回一行。如何使用Linq to Entities從此集合中獲取第一個值?

那麼如何從userGroups中獲取一個值而不必循環?

感謝 凱文

using (kdEntities db = new kdEntities()) 
     { 
      Label lbl = sender as Label; 
      IQueryable<UserGroup> userGroups = from UserGroup in db.UserGroups where UserGroup.UgpID == 1 select UserGroup; 

      foreach (var group in userGroups) 
      { 
       lbl.Text = group.UgpDescription; 
      } 
     } 

回答

8
userGroups.FirstOrDefault(); 

應該做的伎倆

+0

簡單,輕鬆的檸檬榨汁+1 –

2

你有兩個選擇:

使用userGroups.FirstOrDefault();如果可能有多個值,你只在第一次興趣一個

使用userGroups.SingleOrDefault();如果應該只有一個值。如果有多個值,則會拋出異常。

OrDefault部分也是可選的。如果沒有值,這將返回默認值(在您的案例中爲null)。如果忽略OrDefault並且集合爲空,則會拋出異常。