2016-09-29 16 views
1

私は最後の月にMicrosoft Sync Frameworkを使用していましたが、ローカルデータベースとサーバーデータベースの同期に問題はなく、データベースに新しい列を追加しました。最近、私はタブレットにいくつかの新しい列を追加し、その特定のテーブルを同期しながら、私はエラーを取得しています:Microsoft Sync Framework '予想される列'エラー

Expected column 'foo' was not found on the DataTable to be applied to the destination table 'MyTable'. 
Parameter name: dataTable 
System.ArgumentException: Expected column 'foo' was not found on the DataTable to be applied to the destination table 'MyTable'. 
Parameter name: dataTable 
    at Microsoft.Synchronization.Data.SqlServer.SqlChangeHandler.SetColumnOrder(DataTable dataTable, Int32& updateKeyOrdinal, Int32& createKeyOrdinal) 
    at Microsoft.Synchronization.Data.SqlServer.SqlChangeHandler.ApplyBulkChanges(DataTable dataTable) 
    at Microsoft.Synchronization.Data.RelationalSyncProvider.ApplyChangesInternal(DbSyncScopeMetadata scopeMetadata, IDbTransaction transaction, FailedDeleteDelegate_type failedDeleteDelegate, DataSet dataSet, ChangeApplicationType applyType) 
    at Microsoft.Synchronization.Data.RelationalSyncProvider.ApplyChanges(DbSyncScopeMetadata scopeMetadata, IDbTransaction applyTransaction, DataSet dataSet, DbSyncSession DbSyncSession, Boolean commitTransaction, FailedDeleteDelegate_type failedDeleteDelegate, String batchFileName, ChangeApplicationAction& action) 
    at Microsoft.Synchronization.Data.RelationalSyncProvider.SingleTransactionApplyChangesAdapter.Apply(DataSet dataSet, Boolean commitTransaction, FailedDeleteDelegate_type failedDeleteDelegate, String batchFileName, ChangeApplicationAction& action) 
    at Microsoft.Synchronization.Data.RelationalSyncProvider.ApplyChanges(DbSyncScopeMetadata scopeMetadata, DataSet dataSet, DbSyncSession dbSyncSession, Boolean commitTransaction) 
    at Microsoft.Synchronization.Data.RelationalSyncProvider.ProcessChangeBatch(ConflictResolutionPolicy resolutionPolicy, ChangeBatch sourceChanges, Object changeDataRetriever, SyncCallbacks syncCallbacks, SyncSessionStatistics sessionStatistics) 
    at Microsoft.Synchronization.KnowledgeProviderProxy.ProcessChangeBatch(CONFLICT_RESOLUTION_POLICY resolutionPolicy, ISyncChangeBatch pSourceChangeManager, Object pUnkDataRetriever, ISyncCallback pCallback, _SYNC_SESSION_STATISTICS& pSyncSessionStatistics) 
    at Microsoft.Synchronization.CoreInterop.ISyncSession.Start(CONFLICT_RESOLUTION_POLICY resolutionPolicy, _SYNC_SESSION_STATISTICS& pSyncSessionStatistics) 
    at Microsoft.Synchronization.KnowledgeSyncOrchestrator.DoOneWaySyncHelper(SyncIdFormatGroup sourceIdFormats, SyncIdFormatGroup destinationIdFormats, KnowledgeSyncProviderConfiguration destinationConfiguration, SyncCallbacks DestinationCallbacks, ISyncProvider sourceProxy, ISyncProvider destinationProxy, ChangeDataAdapter callbackChangeDataAdapter, SyncDataConverter conflictDataConverter, Int32& changesApplied, Int32& changesFailed) 
    at Microsoft.Synchronization.KnowledgeSyncOrchestrator.DoOneWayKnowledgeSync(SyncDataConverter sourceConverter, SyncDataConverter destinationConverter, SyncProvider sourceProvider, SyncProvider destinationProvider, Int32& changesApplied, Int32& changesFailed) 
    at Microsoft.Synchronization.KnowledgeSyncOrchestrator.Synchronize() 
    at Microsoft.Synchronization.SyncOrchestrator.Synchronize() 

私は、サーバーから自分のローカルデータベースにテーブル全体をダウンロードしようとしています。これはいつもうまくいきましたが、今私は突然このエラーを受け取ります。私はテーブルMyTable、私のローカルデータベースと私のサーバーデータベースに列fooを持っています。このエラーの背景には何がありますか?

+0

私は同じ時点で固執しています。運が良ければ? –

答えて

0

これで解決策が見つかりませんでした。新しいデータベースの作成、移行の実行、および古いデータベースからのすべてのデータのインポートが終了しました。この問題は、データベースの移行履歴のどこかにあるようです。

0

テーブルをプロビジョニングすると、テーブルを表す対応するUDF(TVF)が作成されます。これは、移行を実行するときに基本表と同期しなくなっている可能性があります。

関連する問題