c# - 可插拔数据库层的建议

标签 c# architecture data-access-layer

我目前正在从事一个使用 SQL Server 数据库存储数据的软件项目。由于有一些从 SQL Server 迁移到 Oracle 的计划,其中一个要求是构建可插拔数据库层。

所以我的问题是最好的方法是什么?

最佳答案

你有很多选择。一种选择是使用现有的各种对象关系映射器 (ORM) 框架之一。 NHibernate 是一个流行的框架,但 Microsoft 的 Entity Framework (在 v4 中)也是一个合理的可能性,并且它与 Linq 集成得更好,如果这是您感兴趣的那种东西。

第二个选项(不一定排除上述选项)是实现类似于存储库模式的东西,并通过存储库层运行所有数据库访问。有些人将 ORM 框架视为存储库模式的替代品;其他人看到在 ORM 框架之上增加值(value)的存储库层。存储库为您提供的真正值(value)是交换 ORM 层的能力。只有您知道这是否合理,即使合理,实现额外的存储库级别可能比将所有内容重新绑定(bind)到新的 ORM 需要更多的工作。

关于c# - 可插拔数据库层的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4845346/

相关文章:

c# - 一组可用包装中的包装元素

mysql同时插入?

c# - C++ 和 .NET 是否在银行、医疗保健和电信等领域一起使用

angular - SPA、微服务和 Kubernetes(架构问题)

go - Go Web App 中必须要有 DAL 和 BLL 吗?

data-access-layer - 没有 web2py 的 DAL

c# - WPF 执行时找不到本地资源

c# - 如何在 .NET 中以编程方式为图像的透明部分着色

c# - 许多 WebReferences 使用相同的类

sql - 值得自己测试数据访问查询吗?