如何使用lambda / linq过滤WCF服务结果

时间:2013-08-12 10:31:58

标签: c# linq wcf web-services lambda

我正在计划一个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

1 个答案:

答案 0 :(得分:0)

您似乎需要WCF Data Services