2011-12-23 13 views
0

Windows PhoneアプリケーションにSQL CEデータベースがあります。 hereのようにデータベースを保護する必要があると私は決めました。問題は、データベースがもともとはパスワードなしで作成されたため、暗号化されていないということです。すべてのデータを新しい暗号化されたデータベースに移動したいと思います。LinqToSqlを使用してデータベースデータを新しいデータベースにコピー

データを移行して関係を保持する最良の方法は何ですか?私は

db.Groups.InsertAllOnSubmit(context.Groups); 

(DBは、新しいデータベースで、コンテキストが古いです)これを実行しようとしたが、それは誤り

が試みではないエンティティをアタッチまたは追加するためになされたもので投げますおそらく別のDataContextからロードされているかもしれません。これはサポートされていません。

各オブジェクトを手動で回転して新しいデータベースに作成し、エンティティを関連付けるためのルックアップを実行する必要がありますか?

答えて

1

データベースの移行には外部ツールを使用する必要があります。 SQLスクリプトを生成してデータベース構造を作成し、次にデータのインポートとエクスポートツールを使用して、新しいデータベースにデータをコピーすることができます。私はそれをプログラム的にはしません。

+0

あなたは私にこれらの外部ツールの詳細情報を提供することができますか? LinqToSql/Sql CEで作業していることを覚えておいてください。 –

1

代わりInsertInsertAllOnSubmitのAttachAll使用してみてください:

db.Groups.AttachAll(context.Groups); 
+0

ありがとう!あとで見てみます! –

+0

これは機能しませんでした。それは同じ正確な結果をもたらしました。 –