3

Я новичок в Service Stack и OrmLite и изучал ORMLite в качестве альтернативы Entity Framework. 2 вопроса у меня об этом: - Причина, по которой EF обращается ко мне, - это возможность отделить операции базы данных и модель бизнес-данных на отдельные слои. - EF может работать с тем, что вы указали в строке подключения конфигурационного файла. ORMLite, по-видимому, имеет разные вкусы для разных баз данных, и это касается меня, потому что я не хочу повторять изменения кода.Является ли OrmLite действительно агностиком базы данных?

Правильно ли я понимаю вещи? Просьба уточнить

Благодарности

Сураджа

ответ

3

OrmLite поддерживает несколько поставщиков баз данных с использованием DialectProvider's.

В основном, когда какая-либо РСУБД отклоняется от нормы и требует особого внимания, эта функциональность передается поставщику Dialect, поэтому она может обеспечивать функциональность на заказ, а поведение по умолчанию должно быть переопределено.

2

Хотя нет такого понятия, как «база данных агностик». Продукт может соответствовать стандарту (например, SQL92), но даже это не гарантирует, что он полностью реализован для этого стандарта.

За установление соединения с другим хранилищем базы данных/хранилища будет установка другой строки соединения и поставщика диалектов на фабрике соединений, поэтому это означает, что смена баз данных не будет слишком сложной задачей.

С официальным переписчиком, this был ближе всех, кого я мог найти.

  • SqlLite
  • SqlServer
  • MySql
  • PostgreSQL
  • FirebirdSql
+0

Да, это то, о чем я думал. Благодаря ! – Suraj

+0

Это относится к Java OrmLite, а не к ServiceStack C# OrmLite - 2 совершенно разных продуктов. – mythz

+0

Ну, вот и все. Я полностью пропустил этот лакомый кусочек. Я обновлю ответ. – StingyJack

0

Проработав на ОРМ в прошлом я могу вам сказать, ORMs фактически не являются "базы данных агностик" , Скорее, ORM пытаются стать агностиком базы данных, насколько это возможно, и обычно имеют целевой набор. Конечно, они будут вас любить, если вы поможете добавить поддержку базы данных, не входящей в список.

Например, маловероятно, что ORM поддерживает базы данных NoSQL (например, Redis, CouchDB) [но не невозможно], собственный XML (например, eXist) или объектно-ориентированные базы данных (например, Zope). По большей части эти технологии нацелены на РСУБД, и они обычно делают это довольно хорошо.

Поскольку это построено на Java, у вас, вероятно, будет множество опций - все, что будет подключаться к JDBC, возможно, будет поддерживаться или оставить возможность расширения.

В основе этих инструментов SQL и функции, которые вы пишете, анализируются и усваиваются базовой базой данных. Теоретически можно использовать любую базу данных.

StingyJack обнаружил, что поддерживаются точные базы данных. MySQL, Postgres, Microsoft SQL Server, H2, Derby, HSQLDB и Sqlite.

Теперь имейте в виду, что еще одна особенность заключается в том, что новые базы данных обычно могут поддерживаться, работая с интерфейсами в коде, поэтому, если вы не видите нужную базу данных, вы могли бы скопировать другой модуль и изменить его до тех пор, пока это соответствует.

Эти инструменты создаются по стандартным шаблонам, этот шаблон повторно применяется и адаптируется к каждой базе данных. Следовательно, по мере того, как этот список растет, вы должны быть в состоянии надеяться на ту же поддержку для каждой новой базы данных.

Это, как говорится, хорошая идея наблюдать за деятельностью любого проекта с открытым исходным кодом, потому что поддержка может отслеживаться, если она недоиспользуется или не работает, пока не достигнет зрелого состояния.

Этот конкретный ORM, похоже, основан на SQL, поэтому не ожидайте расширенной поддержки для покрытия нереляционных баз данных.

 Смежные вопросы

  • Нет связанных вопросов^_^