возможно ли в Db4o загружать новые объекты в постоянный IObjectContainer?
У меня есть настольное приложение, которое при запуске открывает одно соединение (IObjectContainer). если я запросить все объекты с:
var objects = from DummyClass foo in session
select foo
он отлично отбирает все объекты. Однако, если другой клиент добавляет новые классы после этого, тот же запрос все равно выбирает те же объекты без новых.
Я также знаю о:
session.Ext().Refresh(obj, int.MaxValue);
но у меня даже нет неактивированных ссылок на новые объекты, так что там. Как обновить новые объекты ?
Просто обратите внимание: я не хочу открывать / закрывать сессию каждый раз, когда мне нужны какие-то данные, я хочу использовать OODB (прозрачная активация, постоянство объектов с момента загрузки и т. Д.)
Спасибо
ОБНОВЛЕНИЕ (пример кода для лучшего понимания)
// store one class to fill database with some data
using (var mainSession = SessionFactory.CreateNewConnection())
{
mainSession.Store(new DummyClass());
mainSession.Commit();
}
using (var mainSession = SessionFactory.CreateNewConnection())
{
// returns one object
var objects = from DummyClass foo in session
select foo;
using (var secondSession = SessionFactory.CreateNewConnection())
{
secondSession.Store(new DummyClass());
secondSession.Commit();
}
// this loop reload objects known for mainSession (which is not new object)
foreach (var obj in objects2)
{
mainSession.Ext().Refresh(obj, int.MaxValue);
}
// new DummyClass is commited but still not visible (Read-Commited isolation)
// returns one object
var objects2 = from DummyClass foo in session
select foo;
}
using (var mainSession = SessionFactory.CreateNewConnection())
{
// returns two objects
var objects = from DummyClass foo in session
select foo;
}
Мне нужно что-то вроде:
// refresh all objects of DummyClass
session.Ext().Refresh(typeof(DummyClass), int.MaxValue);