0

リスト、データ、すべての通常のものを返す WCF サービスを計画しています。

ここで何年も前に、.NET 4.5 の時点で、ラムダ式またはフィルターを WCF に渡すことができることを見ました (複数サイトのビデオでも何かを見ました)。

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

それ以外の

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

しかし、私が読んでいると、これは不可能であるという矛盾する (そして古い) 情報がたくさんあります。何らかのlinqまたはラムダ式を介して返される前に、 WCFの結果をフィルタリングすることはまったく可能ですか?

アップデート

そのようにサービス(WCF Data Servicesではなく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
4

1 に答える 1

0

WCF Data Servicesが必要なようです。

于 2013-08-12T10:36:42.953 に答える