I am trying to join a single column from one table to 2 columns from another table using inner join but getting error as shown below :
My classes are defined as below :
public class Employee
{
public int Id { get; set; }
public int DepartmentId { get; set; }
}
public class LeaveRequest
{
public int Id { get; set; }
public int SentFromEmployeeId { get; set; }
public int SentToEmployeeId { get; set; }
public virtual ICollection<LeaveUpdateLogs> LeaveUpdateLogs { get; set; }
}
public class LeaveUpdateLogs
{
public int Id { get; set; }
public DateTimeOffset RequestedDate { get; set; }
public int LeaveRequestId { get; set; }
public string Status { get; set; }
public virtual LeaveRequest LeaveRequest { get; set; }
}
Sql Query :
select SentFromEmployeeId,SentToEmployeeId,* from LeaveUpdateLogs l
inner join LeaveRequest lr on l.LeaveRequestId = lr.Id
inner join Employee e1 on e1.Id = lr.SentFromEmployeeId or e1.Id = lr.SentToEmployeeId
where (l.RequestedDate >= '2021-11-01' and l.RequestedDate < '2021-11-16')
and (e1.DepartmentId =100 or e2.DepartmentId = 100)
Linq:
var query = from l in context.LeaveUpdateLogs
join e in context.Employee
on new { l.LeaveRequest.SentFromEmployeeId, l.LeaveRequest.SentToEmployeeId }
equals new { Id1 = e.Id, Id2 = e.Id } into j
where j.DepartmentId== 100
Error : Type of expression in one of the join clause is incorrect. Type inference failed in the call to 'groupjoin'
Can someone please help me with this?