2017-02-23 7 views
0

私はAzure Mobile App Serviceのソフト削除機能とインクリメンタル同期機能を使用しています。私はFooのエンティティのために、このような何かを行うことによって、クライアント側の偽削除フラグを設定し、それを取得しようとしました:Azure Mobile Appサービスのメタデータの列(削除済み)をSyncTablesを使用して設定します。

1) foo.deleted = false; 
2) Client.GetSyncTable<Foo>().Update(foo); 
3) Client.GetSyncTable<Foo>().Where(w => w.id == "xxx" && w.deleted == false).ToListAsync(); 
//The above step 3 doesn't seem to return any results. 
4) Client.GetSyncTable<Foo>().Where(w => w.id == "xxx").ToListAsync(); //This returns a result; 

すべての上記の手順私はオフラインテーブルに対して起こっている理解して。

私は舞台裏で何が起こっているのか不思議に思っていました。使用できるDeleteAsyncメソッドがあることは知っていますが、ステップ3が結果を返さない理由を理解したかっただけですが、ステップ4では結果が返されます。

削除されたメタデータ列をクライアント側で操作できませんか?あなたはGitHubの上のコードをチェックアウトすることができます

答えて

0

- あなたは...(何かを)行うとhttps://github.com/azure/azure-mobile-apps-net-client

ショートバージョンが、それは、SQLクエリを作成し、それを実行しません。実際に結果を要求すると(たとえば、.ToListAsync()など)、クエリを実行し、結果を変換して返します。これにより、複雑なLINQ式を作成し、可能な限り効率的な方法でSQLクエリに変換できます。

+0

こんにちは、ありがとうございます。欠落しているToListAsync()はタイプミスです。申し訳ありません。 (あなたのブログはすばらしいですね!) 私の質問は私が行うときです 1)foo.deleted = false; 2)Client.GetSyncTable ().UpdateAsync(foo); //以下の手順3は0のレコードを返します 3)Client.GetSyncTable ().Where(w => w.id == "xxx" && w.deleted == false).ToListAsync(); //しかし、手順4は結果を返します。 4)Client.GetSyncTable ().Where(w => w.id == "xxx")。ToListAsync(); 短く設定すると、 foo.deleted = trueとし、DeleteAsync(foo)と同じようにUpdateAsync(foo)を実行しますか? –

関連する問題