0
我对使用T-SQL/SQL Server相当陌生,而且我不确定如何使用Linq获得期望的结果。如何对结果进行分组并删除重复项
从下面的代码,我得到如下结果:
from com in Complaints
join pro in Projects on com.ProjectId equals pro.ProjectId
join cont in Contacts on com.SubContractorContactId equals cont.ContactId
join cont2 in Contacts on com.OccupantContactId equals cont2.ContactId
where com.EmailStatusId == null
select new
{
pro.ProjectName,
com.ComplaintId,
com.ComplaintName,
SubContractorName = cont.FirstName,
SubContractorEmail = cont.Email,
com.DueDate,
OccupantName = cont2.FirstName,
OccupantPhone = cont2.Phone,
OccupantEmail = cont2.Email
}
我想结果与其中列出的每个投诉返回一个不同的项目。此外,我希望在投诉中对每个联系人进行分组,同时删除重复内容。因此,对于每个项目,我希望得到的结果是单行的,然后是项目内的每个投诉,并在每个投诉联系人内。
为了帮助您理解我创建了这个大纲。
Projects
- Lake Road Construction
- Complaints
- Foundation Cracks: ComplaintId 1, DueDate
- Contacts
- SubContractor
- Carlo
- [email protected]
- Occupant
- William
- [email protected]
- 616-846-0467
- Drywall: ComplaintId 2, DueDate
- Contacts
- SubContractor
* No SubContractor needed since the previous complaint has the same SubContractor.
- Occupant
- Keesha
- [email protected]
- 661-205-2018
- Jennifer Lane Renovation
- Complaints
- Light Fixture: ComplaintId 3, DueDate
- Contacts
- SubContractor
- Ardith
- [email protected]
- Occupant
- Olivia
- [email protected]
- 210-530-5281
- Plumbing: ComplaintId 4, DueDate
- Contacts
* Contacts have already been collected from the other complaint.
从我读过的内容看,我认为我需要使用“group by new {}”或使用UNION。不过,我不确定我需要的方向。任何帮助将不胜感激。
你是一个生命的救星!我从来没有想过这样做。看起来我需要刷新我的Linq/Lambda。 –