2011-12-02 28 views
0

如何獲得第一個項目?這似乎是我必須做以下事情,否則我會得到一個錯誤,就像它是一個多項目,我不能得到它的第一個元素。LINQ2SQL - FirstItem

我的目標是我想從下面的代碼中刪除foreach循環。

     MetaDataPropertyBag propertyBag = new MetaDataPropertyBag(); 

         var dbResultsOfType = db.spi_GetTypesByCaseType(caseType); 

         foreach (var item in dbResultsOfType) 
         { 
          if (item.ASSOC_TYPE_ID == primaryChildTypeID) 
          { 
           propertyBag.CaseTypeDesc = item.DESCRIPTION; 
           propertyBag.Required = item.IS_REQUIRED == 'Y' ? true : false; 
           propertyBag.Parent = item.PARENT_ID.Value; 
           propertyBag.Child = item.CHILD_ID.Value; 
           propertyBag.AssocTypeID = item.ASSOC_TYPE_ID; 
           propertyBag.CaseTypeID = item.CASE_TYPE_ID; 
           break; // Only one entry is requested 
          } 
         } 

回答

1

FirstorDefault應該這樣做:在firstordefault

1

MSDN文章在這裏是做這件事:

var first = dbResultsOfType.FirstOrDefault(item => item.ASSOC_TYPE_ID == primaryChildTypeID); 
if (first != null) { 
    propertyBag.CaseTypeDesc = first.DESCRIPTION; 
    propertyBag.Required = first.IS_REQUIRED == 'Y' ? true : false; 
    propertyBag.Parent = first.PARENT_ID.Value; 
    propertyBag.Child = first.CHILD_ID.Value; 
    propertyBag.AssocTypeID = first.ASSOC_TYPE_ID; 
    propertyBag.CaseTypeID = first.CASE_TYPE_ID; 
}