2011-05-29 60 views
0

我使用了db4o 8用C#3.5中,TA和TP對所有我的域模型類的功能。 問題是我有我自己的ID生成器附加到以下代碼創建事件:db4o的創建事件不火的db4o的8

IEventRegistry eventRegistry = EventRegistryFactory.ForObjectContainer(Container); eventRegistry.Creating + = new EventHandler(eventRegistry_Creating);

我有一個包含訂單列表中的用戶類型。 問題是如果我更新USER類,創建事件不會觸發USER.ORDERS中新添加的ORDER對象。

8版本之前,我用V7.4和它工作得很好,但今天我升級它的V8獲得一些性能優勢,但出現這個問題。

請你幫我解決這個問題?

+0

我發現了一些可能會有所幫助,在V7.4我用Db4oFactory類打開數據庫,現在在V8我用Db4oEmbedded類打開它,這兩者有什麼區別? – iBoy 2011-05-29 11:48:34

+0

不,功能是一樣的。 Db4oFactory只是較舊的已棄用的入口點。 – Gamlor 2011-05-30 21:01:26

回答

0

我試圖重現這個問題,它對我很好。您確定添加的訂單實際上是存儲的嗎?你使用什麼樣的收藏品? db4o可激活集合還是常規CLR集合?你使用了哪個版本?

這其中的工作我的小測試案例:

var eventRegistry = EventRegistryFactory.ForObjectContainer(container); 
var expectFireCreated = false; 
eventRegistry.Created += (sender, args) => 
           { 
            expectFireCreated = true; 
           }; 
var costumer = (from Constumer c in container 
       select c).First(); 
costumer.Orders.Add(new Order("55")); 

container.Commit(); 

Assert.IsTrue(expectFireCreated);