db4o ドキュメント(.net バージョン) で読んだように、クラスのフィールドの名前を変更するには、コードに次のコードを追加する必要があると思いました (もちろん、クラスの実際のフィールドの名前を変更します)。
IEmbeddedConfiguration configuration = Db4oEmbedded.NewConfiguration();
configuration.Common.ObjectClass("Namespace.ClassName, AssemblyName").
ObjectField("fieldname").Rename("newfieldname");
そして、このコードをそのままにしておきます。しかし、これをテストしたところ、うまくいきませんでした (データベース内のオブジェクトは、名前が変更されたフィールドをロードしません)。うまくいったのは、このページの指示に従うことでした。
- 名前の変更を構成する
- 1で作成した設定でデータベースを開く
- データベースを閉じる
- コード内のフィールド名を変更する
- データベースを再度開くときは、名前の変更を構成しないでください。
これは私には少し奇妙に思えます。私のプログラムは、名前変更呼び出しだけで 1 回実行する必要があり、名前変更呼び出しなしで実際のフィールドの名前を変更して実行する必要があります。問題は、たった 1 つのステップで効果的な名前変更を行う方法があるかどうかです。
たとえば、組み込み (モバイル) アプリケーションを更新するプロセスでは、新しいバージョン (リファクタリング) をクライアントにインストールする前に、名前変更呼び出しを 1 回実行する必要があります。それを回避する方法はありますか?何か不足していますか、または db4o データベース内のフィールドの名前を変更する他の方法はありますか?