Я новичок в LINQ и Entity Framework, и мне не удается найти подходящий запрос.
У меня есть следующие лица. Я включил первичные ключи и некоторые другие соответствующие поля.
Контакт
Int ContactId (PK),
Строковое имя,
Строка EMailAddress
Project
Int ProjectId (PK)
ProjectContact
Int ProjectId (PK),
Int ContactId (PK),
Boolean IsPrimaryContact,
Boolean IsSecondaryContact
Проект может иметь 1..n контакты, один из которых является основным контактом для этого проекта. Кроме того, если в проекте имеется более одного контакта, один из других контактов может быть дополнительным контактом для этого проекта.
Контакт может быть связан со многими проектами и может быть основным или вторичным контактом для нескольких проектов.
Мне нужно создать электронное письмо для каждой группы проектов, в которых есть общая комбинация основного и дополнительного контактов. Идея заключается в том, что поле «Кому» электронной почты содержит адрес электронной почты основного контакта, поле «CC» содержит адрес электронной почты дополнительного контакта (если есть дополнительный контакт), а тело письма содержит сведения обо всех проектах, в которых есть эта комбинация. первичных и вторичных контактов.
Я хотел бы заполнить список, содержащий объекты со следующей структурой:
class EmailDetails
{
public Contact PrimaryContact;
public Contact SecondaryContact;
public IEnumerable<Project> Projects = new List<Project>();
}
Пока у меня есть это:
var QueryResults =
from project in ProjectSet
join primaryContact in ProjectContacts on project.ProjectId equals primaryContact.ProjectId where primaryContact.IsPrimary
join secondaryContact in ProjectContacts on project.ProjectId equals secondaryContact.ProjectId where secondaryContact.IsSecondary
select new {primaryContact, secondaryContact, project}
Куда мне идти отсюда?
Спасибо.