Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如果我使用Nhibernate,我可以在数据库之间切换而不更改Nhibernate代码吗?_Asp.net_Sql_Nhibernate - Fatal编程技术网

Asp.net 如果我使用Nhibernate,我可以在数据库之间切换而不更改Nhibernate代码吗?

Asp.net 如果我使用Nhibernate,我可以在数据库之间切换而不更改Nhibernate代码吗?,asp.net,sql,nhibernate,Asp.net,Sql,Nhibernate,我想做的是将整个应用程序从ADO.NET转换为nhibernate,并使用不同的数据库进行测试。我知道nhibernate支持许多不同的数据库,因此我可以在不更改任何应用程序或nhibernate代码的情况下在不同的数据库之间切换吗?简短的回答是:可以。答案很长:这取决于:-)我已经做了很多次了,在SQLite(早期开发和单元测试期间)和SQL Server(用于以后的开发、集成测试和生产)之间切换,没有代码更改或重新编译,只有Web.config更改 如果您的应用程序相当复杂,那么您可能会遇到

我想做的是将整个应用程序从ADO.NET转换为nhibernate,并使用不同的数据库进行测试。我知道nhibernate支持许多不同的数据库,因此我可以在不更改任何应用程序或nhibernate代码的情况下在不同的数据库之间切换吗?

简短的回答是:可以。答案很长:这取决于:-)我已经做了很多次了,在SQLite(早期开发和单元测试期间)和SQL Server(用于以后的开发、集成测试和生产)之间切换,没有代码更改或重新编译,只有Web.config更改


如果您的应用程序相当复杂,那么您可能会遇到一些可移植性问题,但是如果您希望为您的应用程序支持多个RDBMS产品,那么NHibernate仍然是一个很好的选择。任何这样的可移植性问题通常都很容易解决。

简单的回答是:是的。答案很长:这取决于:-)我已经做了很多次了,在SQLite(早期开发和单元测试期间)和SQL Server(用于以后的开发、集成测试和生产)之间切换,没有代码更改或重新编译,只有Web.config更改


如果您的应用程序相当复杂,那么您可能会遇到一些可移植性问题,但是如果您希望为您的应用程序支持多个RDBMS产品,那么NHibernate仍然是一个很好的选择。任何这样的可移植性问题通常都很容易解决。

只要您不针对特定的DMB编写任何特定的查询(可以使用NHiberate(
ISession.CreateSqlQuery
),我会说这是可能的

但是,使用hql或ICriteria API编写的查询应该在其他DBMS上开箱即用(前提是NHibernate支持这些DBMS)


尽管可能需要更改某些配置设置(例如)。

只要您不编写针对特定DMB的任何特定查询(可以使用NHiberate(
ISession.CreateSqlQuery
),我认为这是可能的

但是,使用hql或ICriteria API编写的查询应该在其他DBMS上开箱即用(前提是NHibernate支持这些DBMS)

不过,可能需要更改某些配置设置(例如)