0

シナリオ : 私は WCF Data Services 3.0 をホストしているサード パーティの会社と協力してきましたが、Web サービスへの API アクセスしかありません。ストア プロシージャを使用しても速度を上げることはできません。 SQL 直接アクセスがあります。

私は PFX で少し遊んでいますが、WCF Data Services と一緒に使用しようとすると、間違っている可能性があります。例えば

 public List<EntityA> GetAEntitiesBy(int customerID) {
            var result = new List<EntityA>();
            int lastResultCount = 50;
            int callsMade = 0;

            while (lastResultCount == 50)
            {
            var results = MyApiWrapper.CreateODataContext().EntityA.Expand("Customer").Expand("EntityB").AsParallel()
        .Where(c => c.EntityA.CustomerID == customerID)
        .Where(c => c.EntityB.IsProperty1True && c.EntityB.Property2TypeID == 1)
        .Select(c => c)
        .Skip(callsMade * 50)
        .Take(50));

results.ForAll(c => nodes.Add(c));

            callsMade++;
            lastResultCount = results.Count;

            }

        return nodes;
}

DataServiceQuery を実行するたびに最大 50 行しかプルできないことを理解しています。この関数の結果が Web フォームに戻った後にボトルネックが作成されます.ForEach。他のサービスに対するクエリ (WCF)

この操作を高速化する方法について何か提案はありますか?

一方、このメソッドをデバッグしているときに、並列クエリ実行中に GetEnumerator が呼び出されると、 「 Children could not Be evaluate 」というエラー メッセージが表示されました。

ありがとう

4

1 に答える 1