Я полагаю, вы используете Entity Framework?Поставщик LINQ для Entity Framework собирается принять ваш запрос LINQ и напрямую преобразовать его в SQL.LINQ to SQL, вероятно, делает то же самое, но я никогда не использовал его.
Так что провайдер EF LINQ не знает, как превратить Object.Equals()
в кусок SQL.
Самый простой ответ - сделать то, что вы уже делаете в других местах, преобразовать запрос в перечисляемый с AsEnumerable()
, и с этого момента он перестанет быть запросом EF, а запросом LINQ to Objectsи теперь весь LINQ будет работать за счет необходимости извлекать весь запрос из базы данных в память.
Но в данном конкретном случае простое использование ==
выглядит так, как будто оно вам помогло.