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