Я пытаюсь db4o object databse, и до сих пор мне очень нравится то, что я вижу, но я также читаю этот пост в stackoverflow db4o experience?, указывая на то, что не все что кажется таким легким легко.
Сейчас у меня есть некоторые вопросы относительно того, как db4o используется в приложениях реального мира. Поэтому, если у вас есть опыт работы (особенно в контексте веб-приложения) с db4o, я бы хотел их услышать.
Вот мои вопросы:
-
Как вы управляете идентификацией объекта при работе с хранимыми объектами db4o? **
Исходя из RDBMS-фона, где у вас обычно всегда есть первичный ключ/столбец идентификатора для каждой таблицы, я не могу сейчас представить, как управлять идентификацией объекта в db4o.Например, если я работал с NHibernate/mysql и вам нужно было найти объект User по id, я бы сделал session.Load(primaryKey), и он будет извлечен его PK. Также очень часто, что PK определяется как автоматическое увеличение в определении таблицы.
-
Поскольку в db4o такой опции нет, моя мысль заключалась в использовании структуры Guid для идентификации некоторых объектов в базе данных объектов.
-
Любые инструменты для просмотра сохраненных объектов в db?
Есть ли что-то вроде SQL Server Management Studio (возможно, менее сложного) в мире db4o? Я хотел бы просмотреть уже сохраненные данные/объекты в файле db.
-
Привинчиваются ли вы при переименовании объектов домена?
Насколько я знаю, когда вы переименовываете класс, все ранее сохраненные экземпляры в db больше не могут быть восстановлены. Есть ли способ обойти эту проблему? Как вы имеете дело с обновлениями против живой базы данных, которая уже содержит много объектов?
-
Можно ли исключить свойства для сохранения в БД?
Если, например, один объект домена содержит ссылку на объект службы (без состояния), тогда объект службы также будет сохранен, если объект домена будет сохранен, правильно?
Кажется немного странным, что в базе данных хранится служба, по крайней мере для меня.
Можно ли исключить экземпляр службы из хранилища? Если объект домена будет восстановлен снова, как я могу убедиться, что служба снова добавлена в экземпляр?