2009-09-01 1 views
0

Что я хочу сделать, это преобразовать все мое приложение в nhibernate из ADO.NET и протестировать его с использованием разных баз данных. Я знаю, что nhibernate поддерживает множество разных баз данных, поэтому я могу переключаться между различными базами данных без изменения какого-либо моего приложения или кода nhibernate?если я использую Nhibernate, могу ли я переключаться между базами данных и не изменять код Nhibernate?

ответ

4

Пока вы не писать никаких конкретных запросов целенаправленные для конкретной СУБД (что возможно при использовании NHiberate (ISession.CreateSqlQuery), я бы сказал, что это возможно.

Но запросы, которые были написаны с использованием HQL или ICriteria API должен работать из коробки на других DBMS'es. (При условии, что NHibernate поддерживает эту СУБД).

Хотя, возможно, будет необходимо изменить некоторые параметры конфигурации (http://fgheysels.blogspot.com/2007/07/nhibernate-ms-access-problems-with.html, например).

2

Короткий ответ: да. Долгий ответ: это зависит :-) Я делал это много раз, переключение между SQLite (во время ранней разработки и модульного тестирования) и SQL Server (для последующей разработки, тестирования интеграции и производства) без каких-либо изменений кода или перекомпиляции - просто Web .config.

Если ваше приложение довольно сложно, вы можете столкнуться с некоторыми проблемами с переносимостью, но NHibernate по-прежнему не требует больших усилий, если вы хотите поддерживать несколько продуктов RDBMS для своего приложения. Любые такие проблемы с переносимостью, как правило, достаточно просты в работе.

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