在使用此IEquality
比较器进行交集时遇到此错误。
有人可以确定我在哪里做错了吗?
请问您是否需要更多信息。
答案 0 :(得分:3)
当您将LINQ写入实体时,必须记住,最终,您的LINQ表达式的所有全部都将转换为SQL。因此,对于您在该表达式中进行的每个方法调用,您都应该考虑是否存在将其转换为SQL的合理方法。
记住这一点,您可以看到:
.ToList()
的概念,这可能是您当前错误的根源。应该在表达式的末尾进行对.ToList()
的调用,以“具体化”查询(即使EF对数据库进行实际调用并返回结果)。IEqualityComparer
的任何实现都可以翻译成SQL。