0

VS2008ローカルデータキャッシュツールを使用して、SqlServer 2008 DbとローカルSQL CE 3.5を同期しています。サーバーでは、データ型がuniqueIdentifier、デフォルト値がnewID()のPKを持つテーブルがあります。ローカル・データ・キャッシュを介した初期同期時に、この列のデフォルト値はコピーされません (http://msdn.microsoft.com/en-us/library/bb726037%28v=SQL.105%29.aspx「次の制約はクライアントにはコピーされません。FOREIGN KEY制約、UNIQUE制約、 DEFAULT制約... ")ローカルデータキャッシュSyncTableスキーマがコピーされませんでした。clientSyncProvider _ CreatingSchemaが起動しません。

私は同様の質問をここで見つけました: MS Sync Framework: Table schema not copied to local db

しかし、私は解決策を実装しようとしたとき、私は私のローカルデータキャッシュ部分クラスのclientSyncProviderためCreatingSchemaイベントは発生しませんことがわかりました。

どうしてですか?ローカルのデータキャッシュのスキーマを変更するにはどうすればよいですか?

ご協力いただきありがとうございます。

+0

私は部分的なパブリッククラス 'LocalDataCacheClientSyncProvider'とイベント' CreatingSchema'のコードビハインドでスキーマを変更しました。これは、PK GUIDの 'defaultvalue'を' newid() 'に変更するために書いたものです: ' If e.Table.TableName = "Users" Then ' ' If(e.Schema.Tables( "Users" ( "UserID")。DefaultValue = "NEWID()" '(" UserID ")。列挙型("ユーザーID " End If' 'End If' – Winks

答えて

0

クライアントデータベースのTableCreationオプションの設定は何ですか? SDFと初期スキーマがローカルデータベースキャッシュウィザードで作成されている場合、TableCreationオプションを使用して既存のテーブルを削除し、新しいスキーマに置き換えることを指定しない限り、その後の同期ではスキーマを作成しません。

+0

TableCreationオプションは' DropExistingOrCreateNewTable'です。 – Winks

関連する問題