Ищете руководство по встроенной базе данных .NET (например, DB4O, Nibernate или Ravendb)
-
01-10-2019 - |
Вопрос
У меня есть объектная модель, которую я хочу хранить с помощью встроенной базы данных. Я до сих пор смотрел на 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.