2012-04-27 51 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();