C# SQL Server和SQLite的双重编码

C# SQL Server和SQLite的双重编码,c#,.net,sql-server,vb.net,sqlite,C#,.net,Sql Server,Vb.net,Sqlite,我想为SQL Server和SQLite编写一个应用程序,但不必复制所有数据库访问(这显然是行不通的!) 是否有任何方法可以创建一个类,在该类中,数据库访问按要求进行处理,但作为一组更通用的通用对象(即数据集、数据表,等等)呈现给应用程序的其余部分,而不管从哪个数据库检索数据?是,在.NET框架中,您有一些非常好的起点。几乎所有的数据库操作都被抽象到接口中,比如,IDbCommand,IDataReader,等等。如果您依赖于这些接口,这是很容易做到的(我为支持许多数据库平台的公司做过这件事)

我想为SQL Server和SQLite编写一个应用程序,但不必复制所有数据库访问(这显然是行不通的!)


是否有任何方法可以创建一个类,在该类中,数据库访问按要求进行处理,但作为一组更通用的通用对象(即
数据集
数据表
,等等)呈现给应用程序的其余部分,而不管从哪个数据库检索数据?

是,在.NET框架中,您有一些非常好的起点。几乎所有的数据库操作都被抽象到接口中,比如,
IDbCommand
IDataReader
,等等。如果您依赖于这些接口,这是很容易做到的(我为支持许多数据库平台的公司做过这件事)

您必须解决两个常见问题:

  • 指定和创建连接(在我们的例子中,也可以查找和加载一些驱动程序)。这可能会有所帮助
  • SQL的不同数据库实现。共识:只依赖共享子集,或者创建一个将其抽象出来的中间层

我们已经编写了自己的框架,但也有一些框架已经为您完成了这一切,比如实体框架。

1)ADO.NET已经做到了这一点。只需使用抽象类,如DbConnection、DbCommand。2) 使用微型ORM(如Dapper)或完整ORM(如实体框架),NHibernate@Jim:需要更多帮助吗?