1

ArrayList であるクラスのプロパティがあり、このクラスを db4o コンテナーに格納すると、サーバーの再起動後にリストがクリアされるという問題があります。

ArrayList プロパティを持つクラスは、次のようになります。

public class Planet
{
    public string Name { get; set; }
    public string Identifier { get; set; }

    // Planet has an ArrayList property called Moons.
    public ArrayList Moons { get; set; }
}

クラスをDBに移入して保存する

if (planet.Moons == null)
{
    planet.Moons = new ArrayList();
    planet.Moons.Add(new Moon("MoonOne"));
    planet.Moons.Add(new Moon("MoonTwo"));

    Database.Store(planet);
}

サーバーがすべて正常に動作している限り、リストは正しく、その中の値も正しいです。クラスの他のプロパティも正しく、問題ありません。

サーバーを再起動すると、リストがクリアされます。クラスの残りの部分はまだ正しく、データベース内の他のすべては問題ありませんが、何らかの理由でリストだけがクリアされます。

なぜこれが起こっているのか、誰にも手がかりがありますか?

4

1 に答える 1

0

データベース.Store(惑星);

これはストアですか、それともアップデートですか? つまり、「月」メンバーを設定する前に「惑星」オブジェクトがデータベースから取得されているか、それとも新しくインスタンス化されたオブジェクトですか?

シンプルな組み込みアプリで試してみましたか?

于 2012-08-23T17:25:53.390 に答える