Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 左连接linq到sql_C#_Mysql_Linq - Fatal编程技术网

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()
             });