真正通用的数据链路在哪里?

发布于 2024-10-14 11:17:10 字数 245 浏览 4 评论 0原文

在过去的 oledb 时代,我使用 UDL 文件和相关向导来检查和创建连接字符串。如今,您可以通过这种方式创建的连接字符串不再那么通用了。例如,ADO.NET 实体框架创建 UDL 向导无法处理的修饰连接字符串。有没有任何工具可以创建当今的通用数据链接?

In the good old oledb times I used UDL files and the related wizard to check and create connection strings. Nowadays the connection strings you can create this way aren’t that universal any more. The ADO.NET Entity Framework for example creates decorated connection strings which the UDL wizard can’t handle. Is there any tool to create the universal data links of today?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

原野 2024-10-21 11:17:10

我认为以下两者之间存在区别:

  • 帮助创建连接字符串的工具(双击 .UDL 文件时弹出的工具)。该工具基于 COM,驻留在 Ole32.dll 中,并且仍在工作。
  • 连接字符串的概念从未改变。 (它是如此简单:键/值对的列表!)

今天的(即:.NET?)连接字符串并不比 OleDb 连接字符串通用。它们始终特定于给定的提供商。键/值对可能不相同,但概念始终存在。

UDL 工具使用 COM 对象工作,并且仍然可以使用。例如,可以为实体框架连接字符串的 UDL 工具编写扩展。以下是官方参考的链接:Provider Extensible Data Link用户界面 API

.UDL 文件仍然可以在 .NET(使用 P/Invoke)中使用 IDBPromptInitialize 和 IDataInitialize OleDb 的接口使用,尽管我同意,但现在看起来并不那么自然:)

I think there is a difference between:

  • The tool that helps create connection strings (the one that pops up when you double click on the .UDL file). This tool is COM-based and resides in Ole32.dll and is still working.
  • The concept of a connection strings that has never changed. (it's so simple: a list of key/value pair!)

Today's (ie: .NET?) connection strings are not less universal than OleDb connection strings. They are always specific for a given provider. The key/value pairs may not be the same, but the concept is always there.

The UDL tool works using COM objects and can still be used. For example, one could write an extension to the UDL tool for Entity Framework connection strings. Here is a link on the official reference: Provider Extensible Data Link User Interface API

.UDL files are still usable in .NET (with P/Invoke) using IDBPromptInitialize and IDataInitialize OleDb's interfaces, although I agree, it does not seem so natural these days :)

静待花开 2024-10-21 11:17:10

通用的“数据链路”无法支持所有数据库供应商/版本的所有功能,大多数软件是由企业内部编写的,用于与其对话在内部数据库中,因此不需要独立于数据库

如果 API 与您选择的数据库提供的功能不匹配,则很难对其进行编码,因为文档似乎与您尝试使用的数据库不匹配。

Microsoft 现在希望数据库供应商为数据库提供 Ado.net 数据访问支持,因此每个数据库的数据访问往往不同 - 但大多数人并不关心,因为那里的代码只需要与单一数据库供应商。

有 3rd 方选项,例如 devArt 的 dotConnectDataDirect 为 .net 提供通用“数据链接”,但需要付费。

nHibernate 将位于大多数供应商 .net 数据库访问层之上并隐藏大部分差异如果您乐意使用 ORM。

A universal “data link” cannot support all functions of all databases vendors/versions, most software is written in house by corporations to talk to their in house databases, so don’t need to be database independent.

It is harder to code against an API that is not a good match for the functions your chosen database provides as the documentation never seems to match the database you are trying to use.

Microsoft now expect the database vendor to provide the Ado.net data access support for the database, hence the data access tends to be different for each database – but most people don’t care as there code only needs to work with a single database vender.

There are 3rd party options like, devArt's dotConnect and DataDirect that provides a universal “data link” for .net but at a price.

nHibernate will sit on top of most of the venders .net database access layer and hide most of the differences if you are happy to use a ORM.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文