Вот как я думаю об использовании 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?