【问题标题】:How can I filter WCF service results using lambda / linq如何使用 lambda / linq 过滤 WCF 服务结果
【发布时间】:2013-08-13 15:13:11
【问题描述】:

我正在计划一个 WCF 服务来返回列表、数据和所有常见的东西。

现在我很久以前在这里看到,从 .NET 4.5 开始,您可以将 lambda 表达式或过滤器传递给 WCF(我还在某处的复数视频中看到了一些东西),这使您可以按照以下方式编写一些东西

IQuerable<string> GetInfo();
// or
List<string> GetInfo(Expression predicate);

而不是

GetInfo(int page, int resultsPerPage, bool sortAsc, string sortColumn);

但是,当我四处阅读时,我看到许多相互矛盾的(和旧的)信息说这是不可能的。那么是否可以通过一些 linq 或 lambda 表达式在返回之前过滤 WCF 结果?

更新

我已经像这样实现了一个服务(WCF 不是 WCF 数据服务),我得到了预期的结果。客户端实际上是在将查询传递给 Web 服务还是在客户端呈现?

public class Service1 : IService1
{
    public IQueryable<string> DoWork()
    {
        List<string> strings = new List<string>();
        for (char c = 'a'; c < 'z'; c++)
        {
            strings.Add(c.ToString());
        }

        return strings.AsQueryable();
    }
}

客户:

Service1 s = new Service1();
var results = s.DoWork();
var results1 = results.Where(str => str == "a"); // works

【问题讨论】:

  • 我也想了解更多。我假设消费者也应该实现 IQuerable。基于 Java 的消费者将如何实现这一目标?
  • 在这里找到了一个类似的已接受问题:stackoverflow.com/questions/18143181/…

标签: c# linq wcf web-services lambda


【解决方案1】:

看来你需要WCF Data Services

【讨论】:

  • 请定义“正常”。 :)
猜你喜欢
  • 1970-01-01
  • 2012-07-08
  • 2016-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多