У меня есть клиенты, проекты, комментарии клиентов и комментарии к проектам. Я хочу отобразить одну таблицу, сгруппированную по клиенту, за которой следуют все проекты, и для каждого клиента, в котором есть комментарий, а также для каждого проекта, в котором есть комментарий, отображается последний предоставленный комментарий.
Таблица будет иметь клиентаИмя вверху, за которым следует последний соответствующий комментарий, если он указан. За ним следует список всех проектов для этого клиента с последним комментарием, если он предоставлен.
У меня есть модель клиента:
public class Client
{
public int Id { get; set; }
public string ClientName { get; set; }
public bool IsActive { get; set; }
public ICollection<ClientComment> ClientComments { get; set; }
public ICollection<Project> Projects { get; set; }
Модель проекта:
public class Project
{
public int Id { get; set; }
public string ProjectName { get; set; }
public int ClientId { get; set; }
public Client Client { get; set; }
public bool IsArchived { get; set; }
public ICollection<ProjectComment> ProjectComments { get; set; }
Модель комментария клиента:
public class ClientComment
{
public int Id { get; set; }
public int? ClientId { get; set; }
public Client Client { get; set; }
public string StatusComment { get; set; }
public DateTime LastUpdateDate { get; set; }
public ClientComment ()
{
this.LastUpdateDate = DateTime.UtcNow;
}
Модель комментария проекта:
public class ProjectComment
{
public int Id { get; set; }
public int? ProjectId { get; set; }
public Project Project { get; set; }
public string StatusComment { get; set; }
public DateTime LastUpdateDate { get; set; }
public ProjectComment ()
{
this.LastUpdateDate = DateTime.UtcNow;
}
Конечный результат должен быть с соответствующими заголовками таблицы:
ClientName1 | ClientStatusComment
ProjectName1 | ProjectStatusComment
ProjectName2 | ProjectStatusComment
ProjectName3 | ProjectStatusComment
ClientName2 | ClientStatusComment
ProjectName1 | ProjectStatusComment
ProjectName2 | ProjectStatusComment
ProjectName3 | ProjectStatusComment