シナリオ : 私は 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 」というエラー メッセージが表示されました。
ありがとう