Могу ли я использовать NHibernate как стандартизированный способ взаимодействия с различными механизмами баз данных? - PullRequest
1 голос
/ 04 марта 2011

Я только что спросил здесь , существует ли общий способ получения имен таблиц и созданных таблиц в базе данных.

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

Большинство людей сказали мне, что это невозможно, и что мне нужно будет создать абстрактный слой с реализациями для каждого механизма базы данных.Но я только что нашел NHibernate, и мне кажется, что он генерирует SQL-запросы для широкого диапазона ядра базы данных (я не уверен, включен ли движок Jet).Итак, мой вопрос, могу ли я использовать NHibernate для достижения этой цели?

Ответы [ 2 ]

1 голос
/ 04 марта 2011

NHiberate поможет вам решить проблему с несколькими дБ. Настоящей проблемой является редактирование таблиц.

Я сделал что-то похожее на то, что вы хотите с NHibernate, но функциональность сложна для реализации и трудно получить право.

Поскольку NHibernate - это ORM, вам сначала нужен класс для загрузки данных, поэтому сначала вам нужно создать класс. Затем вам нужно сгенерировать файл отображения, чтобы сопоставить столбцы БД со свойствами излучаемых классов. Затем вы можете использовать сгенерированный файл сопоставления и все другие файлы сопоставления, которые необходимы вашему приложению для создания Configuration. Наконец, вы можете использовать функциональность экспорта схемы NH для генерации новой таблицы.

Как я уже сказал, хитро и не просто, возможно немного.

1 голос
/ 04 марта 2011

Да, вы можете, если схема базы данных одинакова для разных баз данных .

Вот список механизмов баз данных, поддерживаемых NHibernate (, включая Microsoft Jet ) и параметры конфигурации, необходимые для работы с ними:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...