これが私が考えている DB4o の使用方法です。クエリが必要な場合は、ファイルを開き、読み取り、閉じます。
using (IObjectContainer db = Db4oFactory.OpenFile(Db4oFactory.NewConfiguration(), YapFileName))
{
try
{
List<Pilot> pilots = db.Query<Pilot>().ToList<Pilot>();
}
finally
{
try { db.Close(); }
catch (Exception) { };
}
}
後で、挿入する必要があるときに、
using (IObjectContainer db = Db4oFactory.OpenFile(Db4oFactory.NewConfiguration(), YapFileName))
{
try
{
Pilot pilot1 = new Pilot("Michael Schumacher", 100);
db.Store(pilot1);
}
finally
{
try { db.Close(); }
catch (Exception) { };
}
}
このようにして、必要なときだけファイルを開いて、ほとんどの場合閉じておくことで、ファイルをより整然とした状態に保つことができると考えました。しかし、私は InvalidCastException を取得し続けます
Unable to cast object of type 'Db4objects.Db4o.Reflect.Generic.GenericObject' to type 'Pilot'
DB4o を使用する正しい方法は何ですか?