代码之家  ›  专栏  ›  技术社区  ›  burnt1ce

基于WCF的Linq查询

  •  1
  • burnt1ce  · 技术社区  · 15 年前

    我想设计我的应用程序来完成以下任务: 1.从客户端向某台服务器上的某个WCF服务发送LINQ查询 2.该服务器接收LINQ查询并执行LINQ到对象搜索 3.然后服务器返回结果。

    这可能吗?如果是,怎么做?我找不到关于这个话题的任何教程。

    注意:我不想向WCF服务发送方法调用,WCF服务随后执行底层LINQ查询。我希望WCF服务接收某种形式的自定义LINQ查询并进行计算。

    4 回复  |  直到 15 年前
        1
  •  1
  •   danijels    15 年前

    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);
    

    如果您的对象是Order类型,并且包含一个名为“Price”的属性,那么在本例中,查询将返回所有需要花费的订单。正如您也可以看到的,您的客户必须知道“Order”类型才能设置查询。

        2
  •  1
  •   ashraf    15 年前

    如果Linq查询(来自客户端)是您的首要任务,那么为什么不使用WCF数据服务;它支持客户端的linq操作。

    阿什拉夫

        3
  •  0
  •   Kangkan    15 年前

    但是,您真的希望有一个通用方法来返回一组LINQ查询吗?

        4
  •  0
  •   jimplode    15 年前

    我不确定能不能在飞行中写linq。。。如果我错了,有人纠正我。

    更好的方法是使用DataAdapter,将sql传递给它并返回数据集。