2012-04-27 50 views
2

我有如下LINQ查詢,轉換IQueryable的自定義類

public AddXferData DisplayXferDataToBeModified(int ID) 
    { 
     try 
     { 
      var resultSet = (from items in DataContext.Transfers 
          where items.Transfer_ID.Equals(ID) 
          select new AddXferData 
          { 
           XferID = items.Transfer_ID, 
           LogicalName = items.Logical_Name, 
           RoutCode = items.Route_Code, 
           Label = items.Label, 
           OnNetDNA = items.On_Net_DNA, 
           OnNetDNB = items.On_Net_DNB, 
           FailMessage = items.Failure_Message, 
          }); 
      return resultSet; 
     } 
     catch (Exception ex) 
     { 
      throw ex; 
     } 
    } 

但我的resultSet要求一個演員,我得到的消息是

「無法隱式轉換類型 「系統.Linq.IQueryable'到 'ICMAdministration.Data.AddXferData'。存在明確的轉換 (您是否缺少演員?)

我需要轉換結果集來輸入AddXferData。你能讓我知道這是如何實現的。非常感謝您在這方面的幫助。

問候, Raghu

+0

你期望只有一個'AddXferData'? – yamen 2012-04-27 04:56:10

回答

3

如果它是一個單一的AddXferData,然後嘗試:

return resultSet.First(); 

return resultSet.FirstOrDefault(); 

如果它可以返回null(如ID沒有發現什麼的)

1
return resultSet.SingleOrDefault(); 
1

您的查詢將返回AddXferData對象的集合。如果您不期望得到單一結果,請更改函數簽名。

public list<AddXferData> DisplayXferDataToBeModified(int ID) 

,並返回列表 resultSet.ToList();