Search code examples
c#linqentity-frameworknullablenon-nullable

Type Inference failed in a call to 'join' on nullable and non-nullable int


In my Linq, I am trying to make an inner join to a nullable field. Employee and Department have a relation, Department may have an EmployeeID or may have a null. So what would be my join, if i want only the records that satisifed the inner join (no result for null EmployeeIDs):

var result = from emp in employees
             join dept in departments
             on new { Source = emp.EmployeeID }
             equals new { Source = dept.EmployeeID };

I am getting an exception:

The type of one of the expressions in the join clause is incorrect. Type Inference failed in a call to 'join'.

Thanks


Solution

  • What if you reverse your join and put a little where in there?

    var result = from department in departments
                 where department.EmployeeID != null
                 join employee in employees
                 on department.EmployeeID.Value equals employee.EmployeeID
                 select new { employee, department };