LINQ to Entities无法识别方法'System.Collections.Generic.IEnumerable`1

时间:2019-02-10 07:58:04

标签: c# linq

在使用此IEquality比较器进行交集时遇到此错误。 有人可以确定我在哪里做错了吗?

请问您是否需要更多信息。

1 个答案:

答案 0 :(得分:3)

当您将LINQ写入实体时,必须记住,最终,您的LINQ表达式的所有全部都将转换为SQL。因此,对于您在该表达式中进行的每个方法调用,您都应该考虑是否存在将其转换为SQL的合理方法。

记住这一点,您可以看到:

  1. SQL没有.ToList()的概念,这可能是您当前错误的根源。应该在表达式的末尾进行对.ToList()的调用,以“具体化”查询(即使EF对数据库进行实际调用并返回结果)。
  2. 您的数据库对C#接口一无所知。您不能指望IEqualityComparer的任何实现都可以翻译成SQL。
  3. 正如@Dai所指出的,您似乎使用了太多的联接。确保您的模型在实体之间具有正确的导航属性,并使用它们。