Я объединяю несколько таблиц, чтобы создать объект, который буду использовать. Из следующего LINQ вы можете увидеть соединения, и пока это хорошо. Я пытаюсь присоединиться к другому столу УСЛУГИ КЛИЕНТУ.
КЛИЕНТ -> СЕРВИС - это связь один ко многим, у одного клиента может быть много услуг. В Сервисе есть внешний ключ User.Id из таблицы USERS, где я храню электронные письма своих пользователей и 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();