C# 左连接linq到sql
我有一个疑问:C# 左连接linq到sql,c#,mysql,linq,C#,Mysql,Linq,我有一个疑问: public IEnumerable<TimesheetModel> GetTicketsInProgressByUserId(int id) { var query = (from workLogList in DataContext.tblWorkLogs join tickets in DataContext.tblTickets on workLogList.TicketId equals tickets.Ticket
public IEnumerable<TimesheetModel> 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
group workLogList by workLogList.WorkDate into data
select new TimesheetModel
{
TaskDate = data.Key,
TimesheetList = data.Select(x => new TimesheetListModel()
{
ProjectId = x.tblTicket.tblProject.ProjectId,
ProjectName = x.tblTicket.tblProject.Name,
TaskDate = x.WorkDate,
TimeWorked = x.TimeWorked,
Note = x.Note,
Task = TaskString(x.tblTicket.TicketId, x.tblTicket.Title, x.TaskTitle)
}
).ToList()
});
return query.ToList();
}
如何在此上下文中使用左连接?如果只是在模型中进行关联,请记住将基数设置为0..1-* 然后,您应该能够使用点语法,而不是在linq语句中使用join 稍后添加: 以下是我希望您在完成这些关联后(当然未经测试)结束的示例:
join tickets in DataContext.tblTickets on workLogList.TicketId equals tickets.TicketId
(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
group workLogList by workLogList.WorkDate into data
select new TimesheetModel
{
TaskDate = data.Key,
TimesheetList = data.Select(x => new TimesheetListModel()
{
ProjectId = x.tblTicket.tblProject.ProjectId,
ProjectName = x.tblTicket.tblProject.Name,
TaskDate = x.WorkDate,
TimeWorked = x.TimeWorked,
Note = x.Note,
Task = TaskString(x.tblTicket.TicketId, x.tblTicket.Title, x.TaskTitle)
}
).ToList()
});