我正在寻找一个多数据库服务器环境,用于在不同服务器类型和版本之间切换。
我有一个.Net应用程序,它必须处理由其连接字符串定义的多个数据库服务器,但我不想自己处理所有服务器安装/配置。
我正在考虑类似标准的Northwind数据库,但托管在不同的服务器上,如MySql,Oracle,Sql Server 2005,Sql Server 2008等等......
为了在本地处理所有连接,我考虑使用某种代理客户端,它接受connectionString和providername并通过指定的通信协议执行查询。
如果有这样的服务,有没有人有任何想法? (免费和/或商业)
由于
答案 0 :(得分:1)
为了在本地处理所有连接,我考虑使用某种代理客户端,它接受connectionString和providername并通过指定的通信协议执行查询。
至少对于这一点,ADO允许您以相当通用的方式建立连接。您的里程可能会有所不同,因为不同的数据库都使用不同的SQL语言。
使用为所有平台动态构建SQL的SQL DSL可能会更好。
Factory Model Overview (ADO.NET)
ADO.NET 2.0还引入了抽象基类,使开发人员能够编写不依赖于特定数据提供者的通用数据访问代码。
...
编写与提供程序无关的代码的编程模型基于“工厂”设计模式的使用,该模式使用单个API来跨多个提供程序访问数据库。这种模式恰当地命名,因为它要求仅使用专门的对象来创建其他对象,就像现实世界的工厂一样。
DbProviderFactories.GetFactoryClasses
明白:
System.Data.Odbc
System.Data.OleDb
System.Data.OracleClient
System.Data.SqlClient
System.Data.SqlServerCe.3.5