KingbaseES客户端编程开发框架-Ef6.pdf
KingbaseES 客户端编程开发框架-Ef6 金仓数据库管理系统 KingbaseES 文档版本:V9(V009R001C001B0024) 发布日期:2023 年 10 月 12 日 北京人大金仓信息技术股份有限公司 目 目 录 录 第 1 章 前言 1 1.1 适用读者 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 相关文档 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.3 术语 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.4 手册约定 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 第 2 章 概述 2.1 2.2 3 KingbaseES 的 EF6 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1.1 Entity Framework 6 (EF6) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1.2 Entity Framework Core (EF Core) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 KingbaseES 的 EF6 方言包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 第 3 章 KingbaseES 的 EF6 编程指南 3.1 3.2 环境搭建 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.1.1 工程搭建 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.1.2 服务的配置方法和参数说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 程序开发示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.2.1 连接数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.2.2 参考用例一 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.2.3 参考用例二 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 版权声明 13 服务周期承诺 14 I 第 1 章 前言 1 第 章 前言 本文档描述了 Entity Framework 6 的相关背景和 KingbaseES 方言包,并指导如何使用 KingbaseES 方言包进行 编程开发。 前言部分包含以下主题: • 适用读者 • 相关文档 • 术语 • 手册约定 1.1 适用读者 KingbaseES EF6 指南向所有使用 KingbaseES 数据库的用户,主要是使用 EF6 框架进行应用程序开发的开发人 员。 1.2 相关文档 有关 EF6 的更多信息,请参阅以下资源: Entity Framework 6 1.3 术语 无 1 第 1 章 前言 1.4 手册约定 本文档中可能出现“注意、提示、警告、另请参阅”等标志,它们所代表的含义如下: 注意: 用于突出重要/关键信息、最佳实践等。 提示: 用于突出小窍门、捷径等。 警告: 用于传递设备或环境安全警示信息,若不避免,可能会导致设备损坏、数据丢失、设备性能降低或其 它不可预知的结果。 另请参阅: 用于突出参考、参阅等。 以下程序代码书写约定适用于本文档: 符号 说明 [] 表示包含一个或多个可选项。不需要输入中括号本身。 {} 表示包含两个以上(含两个)的候选,必须在其中选取一个。不需要输入花括号本身。 | 分割中括号或者花括号中的两个或两个以上选项。不需要输入“|”本身。 ... 表示其之前的元素可以被重复。 斜体 表示占位符或者需要提供特定值的变量。 大写 表示系统提供的元素,以便与用户定义的元素相互区分。除出现在方括号中的元素外,应当按 照顺序逐字输入。当然,部分元素在系统中是大小写不敏感的,因此用户可以根据系统说明以 小写形式输入。 小写 表示由用户提供的元素。 2 第 2 章 概述 2 第 章 概述 本部分描述了 Entity Framework 6 的开发背景,以及目前 KingbaseES 对 EF6 的兼容情况。 本部分包含以下章节: • KingbaseES 的 EF6 简介 • KingbaseES 的 EF6 方言包 2.1 KingbaseES 的 EF6 简介 微软为了支持.NET 开发人员使用.NET 对象处理数据库的对象关系映射程序 (O/RM),开发出了一种 (O/RM) 框架 Entity Framework。该框架不要求开发人员编写大部分数据访问代码。Entity Framework 目前支持两个版本: Entity Framework 6 和 Entity Framework Core。 • Entity Framework 6 (EF6) • Entity Framework Core (EF Core) 2.1.1 Entity Framework 6 (EF6) Entity Framework 6 是一种久经验证的数据访问技术。 2008 年,它作为.NET Framework 3.5 SP1 和 Visual Studio 2008 SP1 的一部分首次发布。 从 4.1 版开始,已作为 EntityFramework NuGet 包发布。 2.1.2 Entity Framework Core (EF Core) Entity Framework Core (EF Core) 是在 2016 年首次发布的 EF6 的基础上完全重写。 它附带于 Nuget 包中, 是 Microsoft.EntityFrameworkCore 的主要组成部分。 EF Core 是一种跨平台产品,可以在.NET Core 或.NET Framework 上运行。 EF Core 旨在为开发人员提供类似 EF6 的体验。EF6 支持多个数据库引擎,包括 KingbaseES,为了支持 EF6, KingbaseES 提供了 EntityFramework6.Kdbndp。 3 第 2 章 概述 2.2 KingbaseES 的 EF6 方言包 EntityFramework6.Kdbndp 是 Kdbndp 实体框架(EF)核心程序。它的行为与其他 EF6 引擎驱动程序(例如 SQL Server)类似。 目前 KingbaseES 支持.NET Framework 4.0 以上版本。 注意: EF6 在.NET Framework 4.x 上运行,这意味着它仅在 Windows 上运行。 方言包 适用范围 net40.rar .net framework 4.0 net45.zip .net framework 4.5 4 第3章 3 第 章 KINGBASEES 的 EF6 编程指南 KingbaseES 的 EF6 编程指南 本部分描述了 KingbaseES 的 EF6 的环境搭建以及程序开发示例。 • 环境搭建 • 程序开发示例 3.1 环境搭建 • 工程搭建 • 服务的配置方法和参数说明 3.1.1 工程搭建 工程搭建步骤可参考参考用例一 中的步骤 1。 3.1.2 服务的配置方法和参数说明 相关使用,以及参数设置可参考 KingbaseES 客户端编程接口指南-ado.net 中 kdbndp 中连接字符串的解析。 3.2 程序开发示例 • 连接数据库 • 参考用例一 • 参考用例二 您可前往 人大金仓官网 下载 EF6 测试用例 。 5 第3章 3.2.1 KINGBASEES 的 EF6 编程指南 连接数据库 作用: 连接数据库参数配置。 格式: 相关使用以及参数设置可参考 KingbaseES 客户端编程接口指南-ado.net 中 kdbndp 中连接字串的解析。 3.2.2 参考用例一 目的 通过本用例可了解如何引用 EntityFramework6.Kdbndp.dll,在程序中如何使用 EntityFramework6.Kdbndp。 系统必备 所需 VS 版本不低于 Visual Studio 2010,如果使用 Visual Studio 2010,您还需要安装 NuGet 。 步骤 1) 创建应用程序; 为了方便起见,我们要构建使用 Code First 来执行数据访问的基本的控制台应用程序: 1. 打开 Visual Studio; 2. 文件-> 新增-> 项目...; 3. 选择 Windows 左侧的菜单和控制台应用程序; 4. 输入 kb_ef6_test 作为名称; 5. 单击“确定”。 2) 定义模型; 1. 添加类文件 Modules.cs; 2. 在添加类文件中添加如下代码: public enum State { None, 有用, 无用 } public class Test { [Key] public Guid Id { get; set; } 6 第3章 KINGBASEES 的 EF6 编程指南 public Guid? Ids { get; set; } public string Name { get; set; } public bool Sex { get; set; } public bool? Sexy { get; set; } public int Age { get; set; } public int? Ager { get; set; } public DateTime Birth { get; set; } public DateTime? Birthy { get; set; } public float Money { get; set; } public float? Moneies { get; set; } public double Pi { get; set; } public double? Pis { get; set; } public State State { get; set; } public State? States { get; set; } public byte[] RowVersion { get; set; } } 注意: byte[] 定义的变量属性不能用 Data Annatation 标记为 [TimeStamp],标记会出现错误。 3) 创建上下文; 1. 定义派生的上下文,它表示我们在数据库中能够查询和保存数据的会话。 定义的上下文,它派生自 Sys- tem.Data.Entity.DbContext; 2. 为了使用实体框架中的类型,我们需要添加 EntityFramework NuGet 包。在 Nuget 控制台中输入命令: Install-Package EntityFramework 3. 在“引用”中添加 EntityFramework6.Kdbndp.dll,Kdbndp.dll 的引用; 4. 在 Modules.cs 的顶部添加 using 语句: using System.Data.Entity; using System.ComponentModel.DataAnnotations; C# public class BloggingContext : DbContext { public BloggingContext() : base("name=TestKbContext") { } public DbSet