[英]How can I filter WCF service results using lambda / linq
我正在計划一個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
看起來您需要WCF數據服務 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.