自定义数据提供程序?

4
我有一个数据库,目前并没有提供C#客户端库,只有二进制TCP或HTTP REST协议。
我需要编写一个应用程序,可以对该数据库执行各种操作:CRUD、管理等。
这些操作用SQL查询表达,包括select/insert/update/delete和针对特定数据库的自定义关键字。
我想知道如何实现这个功能。从理论和实际的角度来看,我都想了解最佳方法和遇到的问题等。
PS:我正在考虑以下几种方法:
  • 编写自定义ADO.Net提供程序(IDbCommand、IDbConnection等)
  • 编写自定义linq提供程序(依赖于前者)
  • 也许编写EF提供程序

2
实际上,LINQ 实现并不绑定到任何特定的基础架构 - 它只是一种语言结构,因此 LINQ-to-Amazon 或 LINQ-to-RIA 是可能的。除非你指的是 LINQ-to-SQL,它是不同的,而且不太可扩展。 - Marc Gravell
@Marc Gravell:你的意思是第一点和第二点是两个不同的项目吗?当我提到自定义 Linq 提供程序时,我并不是指编写一个 Linq-to-SQL 提供程序,而是指一个自定义存储库 MyDB repo = new MyDB(); repo.Load<Customer>((c)=>c.CompanyName=="foo corp"); 或类似的东西。 - Steve B
这个程序相关的内容不实际显示任何LINQ ;p只是使用Expression API实现仓储库。这无需涉及ADO.NET等。 - Marc Gravell
1个回答

1

Linq 只是语言集成查询。它的语法用于表示查询,但在数据库查询方面,它只创建必须翻译为 SQL 并以某种方式执行的表达式树。为此,使用 ADO.NET 提供程序进行执行。同样,实体框架也依赖于 ADO.NET 提供程序来访问数据库。因此,如果要创建某些实现,无论如何都应该从 ADO.NET 提供程序开始。


有没有关于这个自定义数据提供程序的解决方案? - user145610

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接