我目前正在开发具有 Oracle 数据库后端的 ASP.NET MVC 应用程序的新版本。当我开始开发时,我惊讶地发现它只是使用 ADO.NET 命令连接到 Oracle。在与另一位开发人员交谈后,我发现他们去年尝试切换到实体框架,但该框架存在许多性能问题,他们不想再次重复这些问题。
我正在尝试找出其他选择:
- 继续使用 ADO.NET 并构建一个封装数据库调用的包装类。基本上是企业库 DAAB 的自定义轻量版。
- 使用企业库 DAAB
- 使用 NHibernate
- 实体框架(由于性能问题,不能选择)
每种方法都有缺点。由于 Microsoft 的 OracleClient 提供程序在 .NET Framework 4.0 版中已被弃用,因此只有使用 Oracle 的 ODP.NET 提供程序才有意义。这是 Enterprise Library 的一个问题,因为当前版本 (6.0) 仍然使用 Microsoft 的 OracleClient。看起来有人已经将 OracleClient 换成对 ODP.NET 的引用,但它似乎不是一个大群体,所以我担心如果我们运行会遇到问题并且资源很少成问题。
NHibernate 使用 ODP.NET,但开发速度已经放缓,他们仍然没有发布基于 .NET 4.0 的更新版本,即使它已经发布了 3 年。开始新的 NHibernate 工作似乎并不明智。
创建一个包装类将允许我们使用 ODP.NET,但这是一项大量工作。如果存在更好的解决方案,我讨厌花时间重新创建轮子。
目前,这让我们只需为 ADO.NET 创建一个轻量级包装器。2013 年末还有其他有效的选择吗?我需要一个由公司支持或拥有活跃社区的选项,这样我们在遇到问题时就不会独自飞行。
更新 使用来自 Enterprise Library Contrib 项目的 Oracle ODP.NET Data Provider v6.0 查看 Enterprise Library DAAB。有人有这个选项的经验吗?