I have a model that has multiple many-to-many relationships. I like to get an un-normalized list of the data that this model is representing, including most of the data in the linked models.
The simplified models.
public class NewsItem : IModel, IMultiTenant
{
public int Id { get; set; }
public String Title { get; set; }
public DateTime PublishDate { get; set; }
public virtual ICollection<Activity> Activities { get; set; }
public virtual ICollection<StaffMember> StaffMembers { get; set; }
public virtual ICollection<Member> Members { get; set; }
}
public class Activity : IMultiTenant, IModel, ILinkedStaffMember, ILinkedAdmin
{
public int Id { get; set; }
public String Description { get; set; }
public virtual ICollection<StaffMember> StaffMembers { get; set; }
}
public class StaffMember : IMultiTenant, IModel, ILinkedActivity
{
public int Id { get; set; }
public String LastName { get; set; }
public String FirstName { get; set; }
}
public class Member : IMultiTenant, IModel, ILinkedActivity
{
public int Id { get; set; }
public String LastName { get; set; }
public String FirstName { get; set; }
}
Some sample data (that does not make any sense :-) ) :
NewsItem 1: Title "The blue team won", Linked Activities 1,3 Linked Members 3
NewsItem 2: Title "The red team won", Linked Activities 2 Linked Members 1,2
NewsItem 3: Title "The green team won", Linked Activities 1,2 Linked Members 2
NewsItem 4: Title "The oragne team won", Linked Activities 3 Linked Members 1,3
Activity1: Desc : "Football" linked staffmembers 1,3
Activity2: Desc : "Tennis" linked staffmembers 1,2
Activity3: Desc : "Basketball" linked staffmembers 2
Staffmember 1: Mike Rogers
Staffmember 2: Jim Morrison
Staffmember 3: Neil Young
Member 1: Neil Armstrong
Member 2: Youri Gagarin
Member 3: Frank De Winne
member 4: Dirk Frimout
Example what the result Is I'm looking for. When I retrieve a list of newsitems with an imaginary filter criteria that fits item 1 and 2. I like to have the followwing list returned.
"The blue team won", "Football", "Mike Rogers", "Frank De Winne"
"The blue team won", "Football", "Neil Young", "Frank De Winne"
"The blue team won", "Basketball", "jim Morrison", "Frank De Winne"
"The red team won", "Tennis", "Mike Rogers", "Neil Armstrong"
"The red team won", "Tennis", "Jim Morrison", "Neil Armstrong"
"The red team won", "Tennis", "Mike Rogers", "Youri Gagarin"
"The red team won", "Tennis", "Jim Morrison", "Youri Gagarin"
Any suggestions ?