Ищете руководство по встроенной базе данных .NET (например, db4o, NHibernate или RavenDB) - PullRequest
6 голосов
/ 27 августа 2010

У меня есть объектная модель, которую я хочу сохранить, используя встроенную базу данных. До сих пор я смотрел на db4o, NHibernate на SQLCE (w / linq) и RavenDB. Это будет использоваться в настольном приложении C #.

Ключевые возможности, которые я хочу использовать: Linq или аналогичные для запросов (без SQL или HQL), встроенный механизм обработки данных, pocos, первая модель poco, без установки (без реестра или аналогичного)

Может кто-нибудь один предложить? Три из которых я смотрю на лучший выбор? Есть ли другие варианты? Кто-нибудь из трех может порекомендовать один другому?

Спасибо

Ответы [ 3 ]

10 голосов
/ 31 августа 2010

Ну, три предложенные базы данных очень разные по своей природе.SQLCE с Hibernate в качестве СУБД с ORM, db4o в качестве базы данных объектов и RavenDB в качестве базы данных документов.У каждого из них есть свои сильные стороны.

SQL CE и NHibernate-Combo Благо:

  • Исключительно хорошая поддержка в области инструментов, знания и большое сообщество есть
  • Простота обновления до серверов MS SQL
  • Хорошая поддержка отчетов Extrem
  • Мощь SQL

Плохое:

  • Требуется сопоставление
  • Отображение между ОО и реляционным миром непросто и может привести к проблемам со сложными моделями.

RavenDB

Хорошее:

  • Нет необходимости в отображении
  • Простота использования
  • Мощное индексирование
  • JSON & HTTP-доступ

Плохо:

  • Если ваш домен не подходит для документа-ориентированного подхода, это будет довольно болезненно
  • Он не поддерживает клиентский профиль .NET Framework (что особенно важно, поскольку вопрос ОП касается встроенных баз данных)

db4o

Товар:

  • Нет необходимости в отображении
  • Простота использования
  • Модель хранения близка к объектной модели.Это также работает для очень сложных моделей.

Плохое:

  • Поддержка инструментов слабая.

Afaik все три поддерживают LINQ иPOCO-первый подход.Однако, поскольку NHibernate & SQL CE по-прежнему нуждаются в тоннах картирования, оно не так свободно, как могло бы быть.

Я думаю, что если вы сосредоточены в первую очередь на POCO, поддержке LINQ, использовании ebedded и простоте использования, я бы попробовал RaveDB или db4o.Если вы сосредоточены на «безопасности», знаниях сообщества, поддержке инструментов и отчетности, я бы выбрал NHibernate и SQL CE.

3 голосов
/ 09 сентября 2012

Firebird - потрясающая встроенная база данных, которая долгое время поддерживала все современные функции корпоративной базы данных:

  • ANSI SQL
  • КИСЛОТА
  • Хранимые процедуры
  • Триггеры

Вы можете получить .NET провайдера (последнее обновление по состоянию на 24 мая по данным сайта), и он поддерживает Entity Framework и Linq.

0 голосов
/ 27 августа 2010

См. этот вопрос .Для поддержки LINQ, проверьте DbLinq , или, так как вы уже собираетесь использовать NHibernate, вы можете использовать собственный поставщик LINQ NHibernate.

...