2. 概述
2.1. ADO.NET 概述
ADO.NET是一组为 .NET Framework 程序员提供的公开数据访问服务的类。 它为创建分布式数据共享应用程序提供了一组丰富的组件,可以对关系型数据、 XML 和应用程序数据进行访问,是 .NET Framework 中重要的一部分。
2.2. KingbaseES .NET Data Provider 概述
KingbaseES .NET Data Provider 是 KingbaseES 提供的 ADO.NET 数据提供程序, 它允许用 C#,Visual Basic,F# 编写的程序访问 KingbaseES 数据库服务器。它以100%的 C# 代码实现。
KingbaseES .NET Data Provider 的开发遵循 .NET 平台的规范,它是 .NET 平台应用程序与 KingbaseES 数据库之间进行通信和数据交换的直接桥梁。
本手册的内容主要是描述 .NET 平台如何通过 KingbaseES 提供的驱动库访问 KingbaseES ,简单介绍了 KingbaseES .NET Data Provider 的基本框架、主要的几个类的作用及使用方法。如果需要更为详细的说明,可参考 System.Data.SqlClient 的文档。KingbaseES 为 .NET 提供的库文件名在 .NET 平台下为 Kdbndp.dll。
2.3. KingbaseES Entity Framework 概述
Entity Framework 是以ADO.NET为基础,面向数据的“实体框架”。针对不同的平台需求,有不同的“实体框架”对应。
Entity Framework 包括跨平台EFcore(Entity Framework Core)和windows平台EF6(Entity Framework 6)。
2.3.1. Entity Framework 6概述
Entity Framework 6是一种久经验证的数据访问技术。 2008 年,它作为 .NET Framework 3.5 SP1 和 Visual Studio 2008 SP1 的一部分首次发布。 从 4.1 版本开始,EF6作为 EntityFramework NuGet 包发布。EF6 在 .NET Framework 4.x 上运行,这意味着它仅在 Windows 上运行。
2.3.2. Entity Framework core概述
Entity Framework Core (EFcore) 是对在 2016 年首次发布的 EF6 的完全重写。 它附带于 Nuget 包中,是 Microsoft.EntityFrameworkCore 的主要组成部分。EFcore 是一种跨平台产品,可以在 .NET Core 或 .NET Framework 上运行。 EFcore 旨在提供类似于 EF6 的开发人员体验。
EFcore 支持多个数据库引擎,包括KingbaseES,为了支持EFcore,KingbaseES提供了Kdbndp.EntityFrameworkCore.KingbaseES。
2.4. KingbaseES .NET Data Provider 基本框架
一般的 .NET 应用程序使用 ADO.NET 连接具体数据库时,需要经过 ODBC 或 OLEDB 等驱动程序才能访问具体的数据源,KingbaseES .NET Data Provider 则直接提供完整的接口,使 .NET 应用程序直接与 KingbaseES 数据库服务器通信,从而减少了中间层的通信代价,提高了应用程序访问 KingbaseES 数据库的效率。
KingbaseES .NET Data Provider 数据提供程序实现了与 KingbaseES 连接的基类,包括 KdbndpConnection、KdbndpCommand、KdbndpDataReader、KdbndpParameter、KdbndpTransaction。
KingbaseES .NET Data Provider 连接的这些基类构成连接对象,同时,支持 ADO.NET 中的非连接对象 DataSet。 KingbaseES .NET Data Provider 使用 .NET 平台的规范,提供 KdbndpDataAdapter 类用于与 DataSet 之间实现无缝对接。 .NET 应用程序可以使用 KdbndpDataAdapter 对象向 DataSet 对象填充数据,也可以使用它向数据库提交缓存在 DataSet 对象中的更改。