Ищете руководство по встроенной базе данных .NET (например, DB4O, Nibernate или Ravendb)

StackOverflow https://stackoverflow.com/questions/3580510

Вопрос

У меня есть объектная модель, которую я хочу хранить с помощью встроенной базы данных. Я до сих пор смотрел на DB4O, Nibernate для SQLCE (W / LINQ) и RAVENDB. Это будет использоваться в приложении на рабочем столе C #.

Основные функции, которые я ищу кредитным плечом: LINQ или аналогичный для запросов (NO SQL или HQL), встроенный двигатель данных, POCOS, POCO First Model, NO Установка (без реестра или аналогичных)

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

Спасибо

Это было полезно?

Решение

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

SQL CE & Nibernate-ComboХорошо:

  • Чрезвычайно хорошая поддержка в инструменты, знания и большое сообщество там
  • Легко обновлять до серверов MS SQL
  • Учебная поддержка хорошей отчетности
  • Сила SQL

Плохо:

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

Ворота

Хорошо:

  • Не нуждается в карт
  • Легко использовать
  • Мощная индексация
  • JSON & HTTP Access

Плохо:

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

db4o.

Хорошо:

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

Плохо:

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

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

Я думаю, что если ваш фокус сначала в POCo, Linq-Support, использование в сфере использования и простым в использовании, я бы попробовал Ravedb или DB4O. Если ваш фокус находится в «Безопасности», знания общин, поддержка инструментов и отчетности, я бы пошел с Nibernate и SQL CE.

Другие советы

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

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

Вы можете получить .NET Provider (Последнее обновление 24 мая согласно сайту), и он поддерживает основу для объектов и LINQ.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top