定制数据提供商?
我有一个数据库(尚)不提供 C# 客户端库,仅提供二进制 tcp 或 http 休息协议。
我必须编写一个可以对数据库执行各种操作的应用程序:CRUD、管理等。
这些操作以 sql 查询表示,并使用 select/insert/update/delete 和用于特定于数据库的操作的自定义关键字。
我想知道达到这个结果的途径是什么。我可以从两个角度提出这个问题:理想世界和现实世界。
我很感激任何反馈!推荐的方法是什么,遇到的问题等等。
PS:我正在考虑这些方法:
- 编写一个自定义的 ADO.Net 提供程序(IDbCommand、IDbConnection 等)
- 编写一个自定义的 linq 提供程序(其中依赖于前者)
- 也许编写一个 EF 提供程序
I have a database which does not provide (yet) c# client library, only a binary tcp or http rest protocol.
I have to write an application that can perform various operations on the DB : CRUD, management, etc.
These operation are expressed in a sql query, with select/insert/update/delete and custom keywords for DB-specific operations.
I'm wondering what is the path to this result. I can ask the question in two point of views : in an ideal world, and in a practical world.
I'd appreciate any feedback !What is the recommended approach, problems encountered, etc.
PS: I'm thinking over these approaches :
- writing a custom ADO.Net provider (IDbCommand, IDbConnection, etc.)
- writing a custom linq provider (which relies on the former)
- maybe writing a EF provider
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Linq 只是语言集成查询。它是表达查询的语法,但在数据库查询的情况下,它只是创建表达式树,必须将其转换为 SQL 并以某种方式执行。对于此执行,使用 ADO.NET 提供程序。对于依赖 ADO.NET 提供程序来访问数据库的实体框架来说,情况也是如此。因此,如果您想创建一些实现,无论如何您都应该从 ADO.NET 提供程序开始。
Linq is just language integrated query. It is syntax to express query but in case of database querying it just creates expression tree which must be translated to SQL and executed somehow. For this execution ADO.NET provider is used. The same states for Entity framework which rely on ADO.NET provider to access the database. So if you want to create some implementation you should start with ADO.NET provider anyway.