Я предполагаю, что один из столбцов имеет тип, который неявно преобразуется в другой. Вероятно, int
и int?
. Вот почему equals
неявно преобразуется, а new { X = 1 }
несовместим с new { X = (int?)1 }
.
Включение одного из конфликтующих столбцов в int
или int?
в зависимости от того, возможны ли нули или нет. Например,
new { Customer_ID = (int?)pl.Customer_ID, ... }
По общему признанию, ошибка компилятора в этом конкретном случае довольно неясна и не указывает на основную причину.
(Этот ответ был спасен из удаленного дубликата. он более полный, чем принятый в настоящее время, я добавлю его.)