LINQ JOIN儿童系列

时间:2014-05-01 22:42:06

标签: linq join parent-child

我有一个返回IEnumerable的meetingRepository类和一个返回attendeeRepository的{​​{1}}类

IEnumerable<Attendee>

我正在努力想出一个链接语句,该语句将加入我的public class meetingRepository { IEnumerable<Meeting> GetAll() { //return all Meetings } } public class attendeeRepository { IEnumerable<Attendee>GetAll() { //return all Attendees } } public class Meeting { public int Id { get; set; } public DateTime Date { get; set; } public string FilePath { get; set; } public int Duration { get; set; } public IEnumerable<Attendee> Attendees { get; set; } } public class Attendee { public int Id { get; set; } public int MeetingId { get; set; } public string Name { get set;} public string Role { get; set; } } 对象,并IEnumerable<Meeting>加入IEnumerable<Attendee> Attendee属性Attendees }基于Meeting

的相关Attendee对象

帮助表示赞赏

修改

@Thomas我可用的meetingRepository没有加载参加者,它只是所有会议的完整列表(我编辑了包含Id属性)。
因此,为了澄清,我的meetingRepository返回一个部分会议对象的IEnumerable(没有与会者)

Attendee.Id

我的attendeeRepository返回一个IEnumerable参与者(编辑为包含MeetingId

Id
Date
Duration
FilePath 

修改

我想出了似乎工作正常的下载

Id
MeetingId
Name
Role

1 个答案:

答案 0 :(得分:0)

var attendees = attendeeRepository.GetAll();

foreach(var meeting in meetingRepository.GetAll())
{ 
    meeting.Attendees = attendees.Where(at=>at.MeetingId == meeting.Id);
}

这应该这样做。完成这些作业后,您的所有会议现在都已准备好与会者列表。