2014-07-18 31 views
-1

我有一个LINQ查询,它将返回一个服务列表,其中包括执行此服务的用户的ID(resourceID)。我需要获取此资源ID并将其用作现有方法的输入参数,该方法将返回资源详细信息的IQueryable结果集。将IQueryable和List组合到一个新类中(类型)

我需要从这里做的是从GetResource方法(iQueryable类型)返回的资源详细信息的一些,并将其添加到一个新的类“People”列表以及服务列表。即一个人可能会有多个服务。最终结果是资源结果中的属性列表和每个人执行的服务子列表。

本质上有两种方法运行linq查询返回不同类型的结果集,我需要将这些结果合并成一个新类型,但我只需要一些由两者返回的字段。

我已经有一个LINQ查询,返回服务列表:

public class Services 
{ 

    public string Activity { get; set; } 
    public DateTime DateProvided { get; set; } 
    public Int32? ResourceId { get; set; } 
    public string ResourceName { get; set; } 
    public string ServiceCode { get; set; } 
    public string ServiceStatus { get; set; } 

有将返回供应商的IQueryable的另一种方法:

public long EId { get; set; } 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
    public int? ResourceId { get; set; } 
    public string EmailAddress { get; set; } 
  • 〜50等多个领域。 ..

我需要做的是拿服务列表,查找Pr ovider和这些结果结合到这个新的类(类型):

public string EmailAddress { get; set; } 
    public long EId { get; set; } 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
    public List<Services> Services { get; set; } 

我第一次问在这里,所以请让我知道如果我不清楚,或者如果您需要更多的细节。

在此先感谢

+1

邮编,包括类定义和样本数据,得到预期的投入和预期的产出。最小的例子 –

+0

-1 – InferOn

回答

1

也许像

var services = GetServices(); 
var providers = GetProviders(); 

var combined = providers.Select(x => 
new{ 
     EId, 
     Firstname, 
     Lastname, 
     EmailAddress, 
     Services = services.Where(
        y=> y.ResourceId == x.ResourceId 
     ).ToList() 
}); 
相关问题