Я оцениваю db4o для сохранения для проекта ASP.NET MVC.Как использовать db4o IObjectContainer в веб-приложении? (Время жизни контейнера?)
Мне интересно, как я должен использовать объект IObjectContainer в контексте сети в отношении срока жизни объекта. Как я вижу, я могу сделать одно из следующего:
- Создайте IObjectContainer при запуске приложения и сохраните тот же экземпляр для всего жизненного цикла приложения.
- Создайте один объект IObjectContainer для каждого запроса.
- Запустите сервер и получите клиентский IObjectContainer для каждого взаимодействия с базой данных.
Каковы последствия этих вариантов с точки зрения производительности и параллелизма?
Поскольку база данных заблокирована при открытии IObjectContainer, я уверен, что опция 2) вызовет у меня некоторые проблемы с параллелизмом - будет ли это также иметь место для опции 1?
Как я понимаю, если я извлекаю объект из объекта IObjectContainer, он должен быть сохранен одним и тем же экземпляром IObjectContainer - для того, чтобы db4o идентифицировал его как один и тот же объект. Поэтому, если я выберу вариант 3), мне нужно будет восстановить исходный объект, внести необходимые изменения (скопировать данные из измененного объекта), а затем сохранить его с помощью одного и того же IObjectContainer. Это правда ?