問題タブ [syncfx]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
121 参照

silverlight - メモリ内リスト内の更新されたアイテムを識別する最良の方法は何ですか?

Sync Framework Silverlight プロジェクトで、クライアント側データベース エンジンに Siaqodb を使用しています。マイクロソフトのクライアント側ソリューションはデータベース全体を一度にメモリにロードするため、大きなデータを処理するのに苦労するため、siaqodb に切り替えました。

編集可能なデータグリッドを作成するために、SiaqodbOfflineEntity オブジェクトのリストを Silverlight データグリッドにバインドしました。Microsoft のソリューションとは異なり、データベース エントリをデータグリッドに直接バインドすることはできません。データベースにクエリを実行し、メモリ内オブジェクトのリストをデータグリッドにバインドする必要があります。これにより、データグリッド セルが変更されたときにデータベースがすぐに更新されないという問題が発生します。セルの変更後にデータベースの更新を処理する最善の方法を見つけようとしています。オブジェクトに変更が加えられていなくても、siaqodb エンジンはアイテムをダーティとしてマークするため、各アイテムをデータベースに更新することはできません。これにより、同期しようとすると競合が発生します。元のリストのキャッシュされたバージョンを保持し、各オブジェクトの各プロパティを比較して、変更されたものを見つけます。しかし、少し面倒なようです。また、いくつかのデータグリッドイベントを調べてみましたが、セルが編集されたときにRowEditEndedが起動しているようには見えず、行を切り替えるたびにCurrentCellChangedが起動するようです(奇数)。

これにはもっと良い解決策が必要です。誰にもアイデアはありますか?

0 投票する
1 に答える
700 参照

microsoft-sync-framework - 同期フレームワーク: SimpleSyncProvider で競合が処理されない

FullEnumerationSimpleSyncProvider競合を処理していないように見える を実装しました。

コンストラクターで、次のプロパティを設定しました。

制約と競合のための私のイベント ハンドラー:

ただし、InsertItem() で競合を報告すると、制約/競合イベント ハンドラーが呼び出されることはありません。

RecordConstraintError同期フレームワークを呼び出すと、終了後に適切なイベント ハンドラーが呼び出されると考えましたInsertItem

どんな洞察も大歓迎です!

0 投票する
1 に答える
900 参照

microsoft-sync-framework - スマートフォンを使用して SQL データベースを同期し、変更を保存および転送するにはどうすればよいですか? (ソースとターゲット間の直接接続なし)

時々接続するクライアント (WPF アプリ、SQL Express DB) が中央の SQL Server と同期する必要があるシナリオがあります。クライアント マシンは現場で使用され、多くの場合、何の接続もありません。スマートフォンを中間ストア アンド フォワード デバイスとして使用する計画です。クライアントは、ローカルの変更を電話機にプッシュします。次に、電話を外し、ラップトップの電源を切り、道路を運転します。運転中に電話が接続され、変更内容が本社にアップロードされます。

Sync Framework でこれを行うことができるかどうかを知る必要があります。

ドキュメントは、同期オーケストレーションがソースと宛先の両方へのアクセスを必要としていることを示しているようです。この場合、宛先 (中央サーバー) への接続がありません。宛先の知識をローカルにキャッシュする方法を見つける必要があると思いますが、それが適切かどうかはわかりません。

クライアント マシンは定期的に直接接続されますが、毎日ではありません。

したがって、シナリオは次のとおりです。

  1. クライアント マシンは月曜日に直接接続され、完全な同期を行います。
  2. 火曜日に、ユーザーは現場に出てアプリを使用し、SQL Express データベースに対して更新 / 挿入 / 削除を生成します。
  3. ユーザーは、クライアント マシンを自分のスマートフォンに「同期」します。(ファイルをSDカードに保存)
  4. ユーザーはクライアントの電源を切り、道路を運転します。
  5. スマートフォンが接続状態になり、ファイルをセントラル オフィスにアップロードします。
  6. セントラル オフィスは、アップロードされたファイルのデータを中央の SQL Server データベースに「同期」します。
  7. 水曜日、木曜日、金曜日に 2 ~ 6 を繰り返します。
  8. 次の月曜日に、ユーザーは完全同期のために再び直接接続されます。

同期フレームワークでこれを行うにはどうすればよいですか?

スマートフォンに中央局から何かを毎日ダウンロードさせることができれば役に立ちますか (中央局の知識など)? クライアントがセントラル オフィスからの古いキャッシュされた知識に対して同期セッションを調整している場合、害はありますか?

前もって感謝します!

0 投票する
0 に答える
787 参照

c# - RetryApplyingRow を使用してフレームワークを同期すると無限ループが発生する

Sync Framework 2.1 を使用しています。競合処理を実装していますが、それが機能しない理由がわかりません:

これが私の競合処理コードです:

また、e.Conflict.RemoteChange を e.Conflict.LocalChange に等しくして、すべての値を両方の DataTable にマージしようとしました。

ボットも役に立ちません。

- コードのどこが間違っていますか?
- RetryApplyingRow を使用した良い例が見つかりません。提供できますか?

前もって感謝します!

0 投票する
1 に答える
615 参照

c# - 同期フレームワークの更新は挿入アクションに登録されます

ある範囲の登録でのみ有効なスコープがあります (たとえば、ID が 1 から 3 の範囲の登録)

したがって、リモートデータベースに次の登録があると仮定します。

ID --- 名前

1 --- 名前1

2 --- 名前2

3 --- 名前3

4 --- 名前4

5 --- 名前5

私のクライアントで、id が 1、2、または 3 (スコープに属する) であるレジストリを変更すると、同期は正常に機能します。

しかし、ID 4 のクライアント データベースに新しい行を追加すると、この登録はリモート データベースの同じ ID の登録と重複し、失敗したイベントの王様がスローされます。

なぜこれが起こるのですか?ID はリモート データベースに既に存在するため、レジストリを正しく挿入する必要があります。

これは私のサーバーのプロビジョニングです:

このコードはローカル データベース用です。

そして、これは同期コードです:

0 投票する
2 に答える
495 参照

sql - 暗号化を使用してフレームワークを同期する

同期に Sync フレームワークのデフォルト データベース プロバイダを使用しています (Sync フレームワーク 2.1)。同期フレームワークを使用してクライアントとサーバーの間でデータが転送される方法を少し説明してもらえますか? この同期にセキュリティ上の脅威はありますか? デフォルトのデータベース プロバイダーで暗号化を使用できますか?

次の記事を読みました http://msdn.microsoft.com/en-us/sync/bb887608.aspx

同期の観点から見ると、Sync Framework は、データがデータベース間を移動するときにデータを暗号化する機能をサポートしています。企業側では、SQL Server 2008 と既存の IIS セキュリティを、ユーザーがデータを交換する際のユーザー認証に活用できます。

デフォルトの同期プロバイダーを使用しています。デフォルトのデータベース プロバイダーを使用して、HTTPS または SSL 経由で同期できますか? 基本的に私が知る必要があるのは、クライアントからサーバーへのデータ転送を誰かが見ることができるかということです。

答えを教えてください。

よろしく、

0 投票する
1 に答える
187 参照

.net - ParameterName '@changeTable' の SqlParameter は、この SqlParameterCollection に含まれていません

Microsoft SQL Server データベース (サーバー) と Microsoft SQL Server Compact Edition データベース (クライアント) 間の同期を行うための Microsoft の指示に従おうとしています。

  • 同期は N 層です (サーバーとクライアントは Windows Communication Foundation Web サービスを介して通信します)。
  • 同期はバッチ処理されます
  • 同期は双方向です

両方のデータベースをプロビジョニングし、サーバーからクライアントにデータを正常にダウンロードしました。クライアントからサーバーにデータをアップロードしようとすると、サーバーで例外が発生します。

ParameterName '@changeTable' の SqlParameter は、この SqlParameterCollection に含まれていません

この例外は、すべての同期バッチ ファイルがクライアントから受信され、Sync Framework がそれらのバッチをサーバーに適用し始めると発生します。この問題の原因は何ですか?