DB Agnostic ASP.Net?

Ear*_*rlz 2 c# sql-server asp.net postgresql portability

我们正在制作一个ASP.Net应用程序.我们希望我们的应用程序至少与数据库无关,最值得注意的是兼容SQL Server和PostgreSQL.这样做的最佳方式是什么?有哪些常见的陷阱?还有一类或类似的东西已经抽象出类似于SqlConnectionPostgreSQL用于连接的东西之间的区别吗?

(我们想要与数据库无关,所以我们可以在这里使用PostgreSQL(在开发中,后来在我们自己的托管中)由于价格而让我们的自托管客户端使用Sql Server,如果他们愿意的话)

Rem*_*anu 5

所有ADO.Net提供程序都扩展了基本接口:

所以理论上你可以针对抽象接口编写整个DAL(数据访问层)并利用任何提供者,包括像MySQL这样的第三方提供者.在实践中,没有凡人曾设法拉扯此技巧.这些接口一方面很难编程,而且除了演示软件之外的任何应用程序都会很快遇到SQL方言不兼容的问题.

一种更可行的方法是解决许多目标目的地并开发特定的DAL.实体框架和存储库模式以及nHibernate和所有这些帮助,但都没有解决根本问题.