1

私は持っています:

static class Db4o...

と:

class Db4oBase... // which uses Db4o class

私ができるところ:

class Customer : Db4oBase
{
    public Customer(string name)
    {
    }
}

私ができるように:

Customer customer = new Customer("Acbel Polytech Philippines");

customer.store();  //something like that

私の開発のある時点まで、以下のコードが突然バグダウンしました。

class Db4o
{
    .
    .
    .
    public static IObjectSet Retrieve(object obj)
    {
        IObjectSet objectSet = null;

        objectSet = container.Ext().QueryByExample(obj); // This part of the code
                                                         // throws a unsupported
                                                         // class hierarchy.

        return objectSet;
    }
}

QueryByExample命令は、サポートされていないクラス階層をスローします。誰かが私が何をすべきか知っていますか?

4

3 に答える 3

2

それはあなたがしたときに起こりました:

  1. クラスをコーディングしてから、プログラムを実行します。
  2. 後でコードを変更し、親クラスを追加/変更します(階層を変更します)
  3. 最後にあなたは再び走りますそして...CRASSHHH。

はい、階層(継承)はサポートされていますが、既存のファイルに適用するのはそれほど簡単ではありません。

于 2011-05-20T16:21:52.443 に答える
1

どういうわけかあなたのクラス階層が変更されました-これはdb4oによって直接サポートされていません。これまでに起こったことは、次のオプションがあります(db4oドキュメントから):

  • できれば新しいパッケージで、異なる名前で新しい階層を作成します
  • 古いクラスから新しいクラスにすべての値をコピーします。
  • 既存のオブジェクトからのすべての参照を新しいクラスにリダイレクトします。
于 2011-09-05T11:10:02.877 に答える
0

さて、これは私が例外を取り除くためにしたことです。別のクリーンなデータベースファイルを作成しました。しかし、そのエラーの原因となった根本的な原因は何であるかはわかりません。まだその時間はありません。ただし、「サポートされていないクラス階層の変更」の例外は削除されました。したがって、これに遭遇した場合は、私が行ったことを試してみることをお勧めしますが、根本的な原因がわかっている場合は、回答としてここに投稿してください。ありがとう。

于 2011-01-18T05:36:29.553 に答える