NHibernate的数据库独立性?

时间:2009-09-09 18:30:38

标签: database nhibernate

我理解NHibernate如何将持久性数据库结构与逻辑分离以及映射如何工作,但是你们如何处理数据密集型操作,复杂的选择场景,数据维护等?我们使用存储过程来处理这些事情,实际上我们有很多这样的程序。

现在推荐的做法是什么?是每个db后端的单独存储过程集的方式吗?

1 个答案:

答案 0 :(得分:1)

如果您正在使用存储过程,那么是的,您必须将它们移植到每个后端。您可以在NHibernate配置中定义参数化的sql语句,但是可能仍然难以提出与数据库无关的语句。

最简单的方法是让NHibernate生成你的SQL,并根据你使用的数据库只更改NHibernate配置中的数据库方言。但根据您的情况,我认为答案是您必须移植您的程序。

换句话说 - 使用存储过程会消除NHibernate与其他数据库一起使用的能力,而无需做一些工作。