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

时间:2011-01-28 11:26:01

标签: .net connection-string

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

2 个答案:

答案 0 :(得分:3)

通用“数据链接”无法支持所有数据库供应商/版本的所有功能,大多数软件由公司内部写入与他们的内部数据库交谈,因此不需要独立于数据库

对于与所选数据库提供的功能不匹配的API进行编码更加困难,因为文档似乎永远不会与您尝试使用的数据库相匹配。

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

第三方选项如devArt's dotConnectDataDirect为.net提供了通用的“数据链接”,但需要付出代价。

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

答案 1 :(得分:3)

我认为:

之间存在差异
  • 工具,有助于创建连接字符串(双击.UDL文件时弹出的连接字符串)。此工具是基于COM的,位于Ole32.dll中,并且仍然有效。
  • 从未改变过的连接字符串的概念。 (这很简单:键/值对列表!)

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

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

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