Создание события db4o не запускается на db4o 8 - PullRequest
0 голосов
/ 29 мая 2011

Я использую db4o 8 с c # 3.5, TA и TP включены во всех моих классах модели домена.проблема в том, что у меня есть собственный генератор идентификаторов, связанный с созданием события со следующим кодом:

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

У меня есть класс USER, содержащий список ORDER.проблема в том, что если я обновляю класс USER, создание события не запускается для новых добавленных объектов ORDER в USER.ORDERS.

до версии 8, я использовал v7.4, и он работал нормально, но сегодня я обновил его до v8чтобы получить некоторые преимущества в производительности, но эта проблема возникла.

Не могли бы вы помочь мне решить эту проблему?

1 Ответ

0 голосов
/ 31 мая 2011

Я пытался воспроизвести проблему, и она работала у меня нормально. Вы уверены, что добавленный заказ действительно хранится? Какую коллекцию вы используете? Активируемые коллекции 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);
...