Using the LINQ syntax, you can write something like this:
var query = (from effort in context.eng_effort
join task in context.eng_task on effort.Eng_Task_ID equals task.Eng_Task_ID
where task.Status == "In Progress" && task.User_ID == "7"
select new { task.Task_Number, ... })
.GroupBy(a => a.Task_Number);
Also, are you sure User_ID is a text column?
With the extension method syntax:
context.eng_effort
.Join(
context.eng_task,
effort => effort.Eng_Task_ID,
task => task.Eng_Task_ID,
(effort, task) => (effort, task)) // Using a ValueTuple here
.Where(et => et.task.Status == "In Progress" && et.task.User_ID == "7")
.Select(et => new { et.task.Task_Number, ... })
.GroupBy(a => a.Task_Number);
Or you could perform a Perform grouped join.