- Kdbndp.EntityFrameworkCore.KingbaseES介绍
1.1. 背景
微软为了支持.NET 开发人员使用 .NET 对象处理数据库的对象关系映射程序 (O/RM),开发出了一种(O/RM) 框架Entity Framework。它不要求提供开发人员通常需要编写的大部分数据访问代码。Entity Framework目前支持两个版本:Entity Framework 6 和 Entity Framework Core。
1.1.1. Entity Framework 6 (EF6)
是一种久经验证的数据访问技术。 2008 年,它作为 .NET Framework 3.5 SP1 和 Visual Studio 2008 SP1 的一部分首次发布。 从 4.1 版开始,已作为 EntityFramework NuGet 包发布。EF6 在 .NET Framework 4.x 上运行,这意味着它仅在 Windows 上运行。
1.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 的开发人员体验。EF Core 支持多个数据库引擎,包括KingbaseES,为了支持EF core,KingbaseES提供Kdbndp.EntityFrameworkCore.KingbaseES。
1.2. 定义
Kdbndp.EntityFrameworkCore.KingbaseES是Kdbndp实体框架(EF)核心程序。它的行为与其他EF core引擎驱动程序(例如SQL Server)类似。
1.3. 支持版本
netstandard2.0 ef_core 2.2.4 - Kdbndp.EntityFrameworkCore.KingbaseES在.net core中使用(windows)
2.1. 数据库连接字符串
作用:
连接数据库参数配置
格式:
相关使用,以及参数设置可参考《Kdbndp使用手册.docx》 中连接字串的解析。
2.2. 参考用例
2.2.1. 目的:
通过用例可了解如何引用Kdbndp.EntityFrameworkCore.KingbaseES.dll,在程序中如何使用Kdbndp.EntityFrameworkCore.KingbaseES。
2.2.2. 步骤:
1)系统必备
-
NET Core 2.1 SDK 或以上版本
2)创建新项目(通过命令行创建项目) -
“工具” -> “NuGet包管理器” -> “程序包管理器控制台”
-
新建控制台项目:
dotnet new console -o ConsoleApp_Efcode
3)更改当前目录 -
在后续步骤中,我们需要针对应用程序发出 dotnet 命令。
-
我们将当前目录更改为应用程序的目录,如下所示:
cd ConsoleApp_Efcode/
4)安装EntityFrameworkCore以及使用到的依赖
dotnet add package Microsoft.EntityFrameworkCore.Design -v 2.2.4
dotnet add package System.Runtime.CompilerServices.Unsafe -v 4.5.2
打开项目ConsoleApp_Efcod,会看到“依赖项”->“Nuget”下有如下引用:
添加Kdbndp.EntityFrameworkCore.KingbaseES.dll,Kdbndp.dll的引用:“依赖项”->“添加引用”添加Kdbndp.dll与Kdbndp.EntityFrameworkCore.KingbaseES.dll
5)建模型
定义构成模型的上下文和实体类:
创建一个新的 Model.cs 文件添加使用以下内容:
using Microsoft.EntityFrameworkCore;
using System.Collections.Generic;namespace ConsoleApp_Efcode { public enum State { None, 有用, 无用 } public class Modules : DbContext { public DbSet<Blog_Test> Kdb_Blog_Tests { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder.UseKdbndp("Server=192.168.28.212;User ID=SYSTEM;Passwor