.NET - 支持多数据库的策略

时间:2010-07-12 05:32:56

标签: .net database nhibernate architecture

我们当前的Web应用程序正在使用SQL Server,我们现在需要支持Oracle。

有几个选择:

  1. Data Facade模式:在Business Layer中使用Data Facade接口,因此SQL Server和Oracle可以拥有自己的数据访问层实现。问题是很难为不同类型的数据库同步DAL代码。

  2. nHibernate:看起来很有希望,我没有使用它的经验。由于我们当前的数据访问层与SQL和存储过程相混合,因此如果更改为nHibernate(我们正面临时间压力),则不确定是否会涉及大量工作。

  3. 我想听听你的意见。谢谢。

4 个答案:

答案 0 :(得分:2)

我不明白为什么拥有支持Oracle和SQL Server的DAL会如此困难。具体而言,LLBLGen就是这样做的。如果是我,我会用它。但那是因为我之前使用过它而且我是一个忠实粉丝。

答案 1 :(得分:1)

NHibernate对多数据库应用程序具有优秀支持。 Here是关于这样做时要考虑的事情的帖子。

但是,如果你有“时间压力”并且你正在使用完全不同的方法(使用存储过程)更新应用程序,那么进行更改肯定是非常重要的。

答案 2 :(得分:0)

ODP.NET提供标准的ADO.NET数据访问,同时公开Oracle数据库特定的功能,例如XML DB,数据访问性能优化和Real Application Clusters连接池。

答案 3 :(得分:0)

还没有人提到Microsoft Enterprise Library。我没有使用它所以我不能提供推荐,但我认为它需要进一步关注。前几天我正在收听一个播客,他们声称数据库的互操作性是一个设计目标。