0
概略的には、私は次のようなことをするのに時間を費やします。Azure Mobile Appオフライン同期 - URLの長さの制限、バッチプル、queryIdの長さ
public async Task<ItemA> GetItemsA(object someParams)
{
var res = new List<ItemA>();
var listOfItemAIds = await GetIdsFromServerAsync(someParams);
var tableAQuery = _tableA.Where(x => listOfItemAIds.Contains(x.Id));
await _tableA.PullAsync(null, tableAQuery);
var itemsA= await tableAQuery.ToListAsync();
var listOfItemBIds = itemsA.Select(x => x.bId).ToList();
await _tableB.PullAsync(null, _tableB.Where(x => listOfItemBIds .Contains(x.Id));
foreach(var itemA in itemsA)
{
itemA.ItemB = await _tableB.LookupAsync(itemA.itemBId);
}
return res;
}
それにはいくつかの問題があります。
listOfTableAIds.Contains(x.Id)
は、50未満のqueryId
でlistOfItemAIds
またはlistOfItemBIds
の内容を表すことができないとして- によるURLの長さの制限のためにエラーにつながりますchars、私はすでに持っているかもしれないデータを引き上げることになります
- 私のすべてのプルが単一のサーバーコールにバッチ処理されていないことは残念です
- 私が直接、単一のサーバーのクエリから、私は必要なすべてを得ることができたが、その後、私は
Azureのモバイル・シンク・フレームワークからそのシーケンスを改善する方法上の任意の提案の利益ではないでしょうか?
@adrianを見ていただきありがとうございます。しかし私はそれを "よりシンプル"なので私のポストにすることはできません。私は、pullasync httpをカスタムHTTPポストにリダイレクトすることになります... –