当实现 .NET 数据提供程序时,务必要定义以下内容:
本节将为定义 .NET 数据提供程序提供信息和建议。
为实现选择接口和类:描述在实现 .NET 数据提供程序时可使用的接口,并说明何时需要实现特定接口。
| 实现 .NET
数据提供程序之前,应定义将实现哪些 ADO.NET
接口和类。您可能需要实现整组接口(虽然这并不是必需的)。或者,您可能只需实现接口和类的子集,例如仅限于
DataAdapter 的实现,其中客户端主要与 DataSet
进行交互,并且只将 .NET 数据提供程序用作 DataSet
和数据源之间的桥梁。
如果 .NET 数据提供程序将不支持特定的 ADO.NET 类或方法,则将该类或方法实现为无操作。如果客户端需要特定行为,则会引发 NotSupportedException。 下表描述可用于实现的接口并说明何时需要特定的接口。
.NET 框架还包含
|
代码约定:描述用于维护所有 .NET 数据提供程序之间的相似性的命名约定和对象构造函数。
若要维持所有 .NET
数据提供程序之间的相似性,请使用以下代码约定。
命名规则若要维持所有 .NET 数据提供程序之间的一致性,请在
.NET
数据提供程序中实现的类之前添加对于实现唯一的标识符。例如,一个示例
.NET 数据提供程序可能会将“Sample”用作唯一标识符,并将
IDbConnection 实现为“ 构造函数虽然这不是实现 ADO.NET
接口所必需的,但为了确保一致的编程模型,应该在每个
.NET
数据提供程序中实现一组标准的构造函数。下表列出了应该在每个
.NET
数据提供程序中实现的构造函数。在所列的构造函数名称中,
|
创建 .NET 数据提供程序库:描述如何为 .NET 数据提供程序分配命名空间并将 .NET 数据提供程序编译成库 DLL。
| 应该将您所创建的每个 .NET
数据提供程序分配到一个唯一的命名空间。该命名空间的确切名称并不重要,但它必须是唯一的,并且不得与其他任何提供程序共享。
实现 .NET 数据提供程序所需的接口在 System.Data 命名空间中提供。此外,System.Data.Common 命名空间还包含一个 DbDataAdapter 实用工具类,它用于实现 .NET 数据提供程序。 以下示例显示用于开始 .NET 数据提供程序的代码,它使用了包含 ADO.NET 接口和任何实用工具类的命名空间。 [Visual Basic]
Imports System
Imports System.Data
Imports System.Data.Common
Namespace CompanyName.ProviderName
...
[C#]
using System;
using System.Data;
using System.Data.Common;
namespace CompanyName.ProviderName
{
...
当编译 .NET 数据提供程序时,由于 System.Data 和 System.Data.Common 命名空间包含在 System.Data.dll 中,所以必须向编译器提供对 System.Data.dll 的引用。例如,如果所有包含用于实现 .NET 数据提供程序的代码并且用 Visual Basic .NET 来编写的文件位于扩展名为“.vb”的单个目录中,则将从该目录发出以下命令来编译存储在 CompanyName.ProviderName.dll 中的文件。 vbc /target:library /out:CompanyName.ProviderName.dll *.vb /r:System.dll /r:System.Data.dll 以下代码示例显示将用于扩展名为“.cs”的 C# 文件的命令。 csc /target:library /out:CompanyName.ProviderName.dll *.cs /r:System.dll /r:System.Data.dll |