我正在联接多个表来创建将要使用的对象。从下面的LINQ中,您可以看到连接,到目前为止,一切都很好。我正在尝试将另一个表SERVICES加入CLIENT。
客户->服务是一对多的关系,一个客户可以拥有许多服务。在“服务”中,USERS表中有一个外键User.Id,我也将用户电子邮件和ClientID保留为外键。
我要实现的目标是填充此对象。我需要加入并以某种方式在客户端上分组,并从客户端在字符串列表中提供的每项服务中获取ServiceOwners电子邮件。
public class ClientEmailContact
{
public string Email { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string ClientName { get; set; }
public bool EmailBatchExclusion { get; set; }
public string ClientStatus { get; set; }
public int CsOwnerId { get; set; }
public int ClientId { get; set; }
public List<string> ServiceOwnerEmails { get; set; }
}
var result = (from c in _dataContext.Clients
join ca in _dataContext.Users on c.Id equals ca.ClientId
join a in _dataContext.UserSettings on ca.UserId equals a.Id
select new ClientEmailContact
{
Email = a.Users.Email,
FirstName = a.FirstName,
LastName = a.Surname,
ClientName = c.ClientName,
EmailBatchExclusion = a.Users.EmailBatchExclusion,
ClientStatus = c.ClientStatus,
CsOwnerId = c.ClientServiceOwnerId ?? 0,
//ServiceOwnerEmails = ??? --------- ???
}).AsQueryable();