//public IHttpActionResult GetTask(int id) //{ // List<FilteredTask> task = new List<FilteredTask>(); // task = (from a in db.Tasks // join c in db.Users // on a.Task_ID equals c.Task_ID into Tasks // from c in Tasks.DefaultIfEmpty() // join b in db.Parent_Task on a.Parent_ID // equals b.Parent_ID // join d in db.Projects on a.Project_ID equals d.Project_ID // where a.Task_ID==id // select new FilteredTask // { // Id = a.Task_ID, // Name = a.Task1, // Parent_ID=b.Parent_ID, // Parent_Task_Name = b.Parent_Task1, // Project_ID=a.Project_ID, // Start_Date=a.Start_Date, // End_Date=a.End_Date, // Priority=a.Priority, // Status=a.Status, // UserId = c.User_ID== null ?null : c.User_ID, // UserFirstName = c.First_Name, // UserLastName = c.Last_Name, // Project_Name = d.Project1 // }).ToList(); // return Ok(task); //} public IHttpActionResult GetTask(int id) { var filteredTask_Table = (from t in (from s in ( from a in db.Tasks where a.Task_ID == id join c in db.Users on a.Task_ID equals c.Task_ID into Tasks from c in Tasks.DefaultIfEmpty() select new { a.Task_ID, a.Task1, a.Project_ID, a.Parent_ID, a.Start_Date, a.End_Date, a.Priority, a.Status, c.User_ID, c.First_Name, c.Last_Name }) join b in db.Parent_Task on s.Parent_ID equals b.Parent_ID into ParentTasks from b in ParentTasks.DefaultIfEmpty() select new { s.Task_ID, s.Task1, s.Project_ID, s.Parent_ID, s.Start_Date, s.End_Date, s.Priority, s.Status, s.User_ID, s.First_Name, s.Last_Name, b.Parent_Task1 } ) join d in db.Projects on t.Project_ID equals d.Project_ID into Projects from d in Projects.DefaultIfEmpty() select new FilteredTask { Id = t.Task_ID, Name = t.Task1, Parent_ID = t.Parent_ID, Parent_Task_Name = t.Parent_Task1, Project_ID = t.Project_ID, Start_Date = t.Start_Date, End_Date = t.End_Date, Priority = t.Priority, Status = t.Status, UserId = t.User_ID == null ? null : t.User_ID, UserFirstName = t.First_Name, UserLastName = t.Last_Name, Project_Name = d.Project1 }).ToList(); return(Ok(filteredTask_Table)); }