将IQueryable转换为自定义类

时间:2012-04-27 04:53:48

标签: c# silverlight linq mvvm

我有一个LINQ查询,如下所示,

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请求一个Cast,我收到的消息是

  

“无法隐式转换类型   'System.Linq.IQueryable'来   'ICMAdministration.Data.AddXferData'。存在显式转换   (你错过了演员吗?)

我需要将结果集强制转换为AddXferData类型。你能告诉我这是如何实现的吗?非常感谢您在这方面的帮助。

此致 Raghu

3 个答案:

答案 0 :(得分:3)

如果是单AddXferData,请尝试:

return resultSet.First();

return resultSet.FirstOrDefault();

如果它可以返回null(如ID未找到或某事)

答案 1 :(得分:2)

return resultSet.SingleOrDefault();

答案 2 :(得分:1)

您的查询将返回AddXferData对象的集合。如果您不希望单个结果,请更改功能签名。

 public list<AddXferData> DisplayXferDataToBeModified(int ID) 

并返回列表      resultSet.ToList();