9

私の Linq では、null 許容フィールドへの内部結合を作成しようとしています。Employee と Department にはリレーションがあり、Department には EmployeeID がある場合と null がある場合があります。内部結合を満たしたレコードのみが必要な場合 (null EmployeeID の結果はありません)、私の結合はどうなるでしょうか。

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

例外が発生しています:

結合句のいずれかの式の型が正しくありません。'join' の呼び出しで型の推定に失敗しました。

ありがとう

4

6 に答える 6

10

Intを比較するには?およびInt、.Valuenull許容プロパティに追加します。

var result = from emp in employees
             join dept in departments
             on new { Source = emp.EmployeeID }
             equals new { Source = dept.EmployeeID.Value };
于 2012-07-09T00:15:12.813 に答える
9

結合を逆にして、そこに少し入れるとどうなりますwhereか?

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 };
于 2011-09-08T08:20:46.033 に答える
1

emp.EmployeeIDとでタイプを確認しdept.EmployeeIDます。キャストが異なる場合は、キャストが欠落している可能性があります。

何かのようなもの:

on new { Source = emp.EmployeeID }
equals new { Source = **(int)**dept.EmployeeID };

emp.EmployeeIDタイプのように見えint、タイプdept.EmployeeIDは ですnullable<int>

于 2013-05-13T18:47:39.480 に答える