我想要设计我的应用程序来执行以下操作: 1.将LINQ查询从客户端发送到某个服务器上的某个WCF服务 2.该服务器接收该LINQ查询并执行linq-目标搜索 3.服务器然后返回结果。Linq WCF上的查询
这可能吗?如果是这样如何?我无法找到关于此主题的任何教程。
注意:我不想向WCF服务发送方法调用,然后执行底层的LINQ查询。我希望WCF服务接收某种形式的自定义LINQ查询并进行计算。
我想要设计我的应用程序来执行以下操作: 1.将LINQ查询从客户端发送到某个服务器上的某个WCF服务 2.该服务器接收该LINQ查询并执行linq-目标搜索 3.服务器然后返回结果。Linq WCF上的查询
这可能吗?如果是这样如何?我无法找到关于此主题的任何教程。
注意:我不想向WCF服务发送方法调用,然后执行底层的LINQ查询。我希望WCF服务接收某种形式的自定义LINQ查询并进行计算。
一种简单的方法是将LINQ查询作为字符串发送到service方法,并将返回类型与适当的对象一起使用。所以该服务将简单地执行查询并返回序列化对象(可能是)。
但你真的期待有一个通用的方法来返回一组LINQ查询吗?
如何将linq查询序列化为字符串并将其反序列化为表达式树/ lambda并执行它? – burnt1ce 2010-10-04 19:08:38
我不确定可以在飞行中写linq ...有人纠正我,如果我错了。
更好的方法是使用dataadaptors,并将sql传递给它并返回数据集。
Linq仅仅是对对象集合执行操作的委托方法。因此,如果您的客户端知道您的服务器应该处理的类型,那么您应该能够创建并将Func<T>
对象传递给服务器以处理其对象集合。我曾经这样做过。只要记住你的客户端应该知道你的服务器最终会在linq查询中有什么。
除非您希望客户端能够从头构建linq查询,否则我没有看到任何好的方法。一些坏的,但我不会去那里。
作为一个完全虚构的例子,你可以这样做:
Func<Order,bool> filter = o => o.Price > 0;
// pass the filter object to the server and on server do:
var res = objectCollection.Where(filter);
前提是你的对象是类型订单,并含有一种被称为“价格”属性,查询将在此情况下返回所有的订单是成本一些东西。正如你所看到的,你的客户必须知道“订单”类型才能设置查询。
如果Linq查询(来自客户端)是您的首要重点,那么为什么不使用WCF数据服务;它支持来自客户端的linq操作。
ashraf
客户端如何在他不知道的对象上构建LINQ查询? – 2010-10-04 16:36:32