【发布时间】:2009-11-30 15:44:24
【问题描述】:
如果我为我的实体对象创建扩展方法并尝试在 LINQ 表达式中使用它,我会收到错误消息。这是一个限制和我不能做的事情还是我错过了什么?
问候 弗雷迪
【问题讨论】:
标签: linq-to-entities extension-methods
如果我为我的实体对象创建扩展方法并尝试在 LINQ 表达式中使用它,我会收到错误消息。这是一个限制和我不能做的事情还是我错过了什么?
问候 弗雷迪
【问题讨论】:
标签: linq-to-entities extension-methods
问题在于 LINQ-to-Entities 提供程序会尝试将您的扩展方法转换为 SQL 语句。 LINQ-to-Entities 有效地要求整个 LINQ 查询表达式可转换为 SQL(请注意,LINQ-to-SQL 没有此限制;LINQ-to-Entities 在客户端空间和服务器空间之间划清界限,而 LINQ-to -SQL 更宽松)。根据您的扩展方法,这可能无法完成。也就是说,如果有任何方法调用等无法转换为 SQL 以在服务器端作为查询工作,那就算了。
【讨论】: