2016-09-29 72 views
1

在過去的幾個月中,我一直在使用Microsoft Sync Framework,我在數據庫中添加了新列,而且在本地數據庫和我的服務器數據庫之間沒有同步問題。最近,我加入了一些新的列在平板電腦,我得到一個錯誤,而同步特定表:Microsoft Sync Framework'Expected column'error

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)來表示該表。運行遷移時,這可能與基表不同步。

相關問題