Db4o可以將新對象加載到持久IObjectContainer中嗎?Db4o - 刷新永久會話中的所有新對象
我有一個桌面應用程序,它在啓動時打開一個連接(IObjectContainer)。如果我查詢所有對象:
var objects = from DummyClass foo in session
select foo
它完美地選擇所有對象。但是,如果另一個客戶端在此之後添加新的類,則相同的查詢仍將選擇相同的對象,而不會有新的類。
我也知道:
session.Ext().Refresh(obj, int.MaxValue);
,但我沒有新的對象,因此,即使有未激活的引用。 如何刷新新對象?
只要注意:我不想每次我需要一些數據時間打開/關閉會話,我想利用面向對象數據庫的(透明激活,對象持久性,因爲裝等)
謝謝
UPDATE(爲了更好地理解代碼示例)
// 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);
+1的暗示,但我擔心的表現。針對所有客戶端的每次提交都會引發此事件 –