如何将LINQ查询传递给WCF服务

时间:2010-02-08 20:16:04

标签: linq wcf

我有一个位于数据集合前面的WCF服务。我希望有一个服务调用,客户端可以传入LINQ查询或表达式树,以对数据集合执行。有没有合理的方法将LINQ查询传递给WCF服务调用?

感谢。

1 个答案:

答案 0 :(得分:2)

目前执行此操作的选项相当有限。无法序列化完整的Linq查询,几乎与您无法序列化任意代码并将其发送到某个地方执行的原因相同(当然,您总是可以动态构建程序集,实现接口和代码查询......但那时你做了很多次。)

我现在已经编写了几次系统,以便在Linq数据源上实现高度自定义的搜索功能。它主要归结为决定您需要支持哪些类型的查询。保持尽可能简单,然后创建一个表示它的数据结构。如果你需要完全的通用性,那么你将开始倾向于看起来像表达树的东西,但通常这对你的目的来说是过度的。

然后,您必须编写一个转换器,它将获取您的自定义查询数据结构并创建Linq查询。使用适当的工具(如LinqKit)可以使这个任务变得非常简单。但是你 必须成为表达树及其操作的专家。