我有* .cs模型
public class TimesheetListModel
{
public string ProjectName { get; set; }
public DateTime TaskDate { get; set; }
public string Task { get; set; }
public decimal TimeWorked { get; set; }
public string Note { get; set; }
}
我有服务,从数据库中选择我的模型。
现在我需要将我的模型包含在List<>中新模式:
public class TimesheetModel
{
public DateTime TaskDate { get; set; }
public List<TimesheetListModel> TimesheetList { get; set; }
public TimesheetModel() { TimesheetList = new List<TimesheetListModel>(); }
}
我需要从db为新模型选择数据,并在新模型中按TaskDate分组。我有服务实现这个查询,但它写的旧模型:
public IEnumerable<TimesheetListModel> GetTicketsInProgressByUserId(int id)
{
var query = (from workLogList in DataContext.tblWorkLogs
join tickets in DataContext.tblTickets on workLogList.TicketId equals tickets.TicketId
join project in DataContext.tblProjects on tickets.ProjectId equals project.ProjectId
join states in DataContext.tblWorkflowStates on tickets.Status equals states.StateId
where workLogList.AccountId == id
select new TimesheetListModel
{
ProjectName = project.Name,
TaskDate = workLogList.WorkDate,
Task = "#" + tickets.TicketId + " : " + tickets.Title,
TimeWorked = workLogList.TimeWorked,
Note = workLogList.Note
});
return query.ToList();
}
我需要如何重写查询以选择新模型的数据?
答案 0 :(得分:2)
你可以这样做: -
where workLogList.AccountId == id
group workLogList by workLogList.WorkDate into g
select new TimesheetModel
{
TaskDate = g.Key,
TimesheetList = g.ToList()
});