我目前正在从事一个使用 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/