Дозвуковой и DB4O

Недавно я читал сообщение Роба Конери о DB4O и это было очень интересно. Мой вопрос действительно касается генерации классов и будущего использования Subsonic и DB4O.

Поскольку Subsonic просматривает базу данных, а затем генерирует классы, как это будет работать для DB4O. Должны ли классы быть написаны вручную, а затем DB4O будет хранить объекты, как определено классом, или будет какая-то процедура проектирования базы данных, которую мог бы использовать генератор классов, такой как Subsonic?

Будет ли Subsonic включать DB4O в качестве одной из баз данных, с которой он работает, в будущих сборках?


person Jon    schedule 04.03.2010    source источник


Ответы (2)


Должны ли классы быть написаны вручную, а затем DB4O будет хранить объекты, как определено классом, или будет какая-то процедура проектирования базы данных, которую мог бы использовать генератор классов, такой как Subsonic?

С помощью SubSonic или DB4O вы можете писать свои классы вручную. На самом деле, это довольно нормальный способ делать что-то. После того, как вы создали свои классы вручную, SubSonic может создавать таблицы реляционной базы данных. DB4O не нужны таблицы реляционной базы данных, поэтому на этом этапе SubSonic не представляет никакой ценности.

Будет ли Subsonic включать DB4O в качестве одной из баз данных, с которой он работает, в будущих сборках?

Это не имеет смысла. DB4O - объектно-ориентированная база данных. Нет необходимости в реляционном отображении. SubSonic - это инструмент объектно-реляционного сопоставления, поэтому он актуален только для реляционных баз данных.

SubSonic не используется в мире DB4O.

person Michael Maddox    schedule 04.03.2010
comment
EURKEA! Лампочка просто загорелась. Если у меня есть класс Person со свойством List ‹Pet›, тогда Subsonic построит SQL, чтобы пройти через таблицу ссылок Person, Pet и PersonPet и вернуть информацию для заполнения объектов класса, но в DB4O ничего из этого не требуется. Спасибо. С другой стороны, я просто пытался подумать о создании классов из моей существующей базы данных, чтобы с чего начать. У меня много таблиц, и я не хочу писать множество классов для начала - person Jon; 04.03.2010
comment
@Jon: вы можете использовать T4 для создания классов из базы данных. Есть много способов сделать это и множество примеров. SubSonic - один из примеров использования T4 для генерации классов из базы данных, но вряд ли он уникален в этом отношении. Есть много генераторов кода, таких как CodeSmith и MyGeneration. Вы даже можете написать свой собственный (но, пожалуйста, не делайте этого!). - person Michael Maddox; 04.03.2010

Единственное место, где я могу увидеть Subsonic в этом технологическом стеке, - это использовать Subsonic для репликации (вместо / в дополнение к NHibernate) базы данных db4o в некоторые СУБД.

См .: http://www.db4o.com/about/productinformation/drs/

Для db4o имеет больше смысла привязаться к Subsonic для обеспечения устойчивости СУБД, чем для Subonic использовать db4o для генерации / повторного использования классов. Файл db4o не содержит полной схемы домена. Таким образом, вполне возможно, что домен db4o имеет некоторые непостоянные типы, которые никогда не могут быть обнаружены таким инструментом, как Subsonic, потому что ни один объект этого типа никогда не был записан в базу данных.

person Martijn Laarman    schedule 04.03.2010
comment
Я не понимал, что DB4O выполняет репликацию СУБД. Полезный! Хороший момент об использовании Subsonic и т. Д. Я думаю, что я думаю о способе создания классов для начала, чтобы начать использование DB4O на основе какой-то конструкции хранилища данных, а затем IF Subsonic можно было бы использовать для запроса базы данных DB4O - person Jon; 04.03.2010
comment
Вы можете создать дозвуковые классы из базы данных, а затем отделить эти классы и сохранить их в db4o :) Другой способ не сработает из-за отсутствия схемы в db4o, как упоминалось в моем сообщении. Таким образом, дозвуковой не сможет запрашивать базу данных db4o так же, как это может делать с ней СУБД. - person Martijn Laarman; 04.03.2010