Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


EF Core 使用手册

📄字数 1.5K
👁️阅读量 加载中...

EF Core 是轻量化、可扩展、开源和跨平台版的常用 Entity Framework 数据访问技术。本文档将介绍 XuguDB 对 EF Core 框架的适配情况,并简易描述使用 EF Core 开发 XuguDB 应用的 Demo 指南。

框架名称适配起始版本官网地址源框架下载地址XuguDB框架下载demo程序地址
EF Core1.0.0EF Core官网-版本发布列表xugu-efcore

提示

其他适配版本可详见版本发布列表

一、方言包使用说明

1.1 方言包安装


XuguDB EF Core 方言提供 NuGet 包与方言动态库文件压缩包两种安装方式。

NuGet 包

XuguDB EF Core 提供 NuGet 包 Microsoft.EntityFrameworkCore.Xugu.X.X.X.X.nupkg

  • 在解决方案资源管理器中加载项目,然后选择“项目”下的“管理 NuGet 程序包”。

  • 使用搜索框,搜索 Microsoft.EntityFrameworkCore.Xugu

  • 在右窗格中,从下拉列表中选择版本。

  • 选择安装。

提示

系统可能会要求接受许可条款或提示验证安装。

动态库文件压缩包

方言动态库文件压缩包内包含 XuguDB EF Core 方言包动态库文件。点击工程中的“引用”,右键选择“添加引用”,单击“浏览”选择解压获取到的方言包动态库文件,最后点击“确定”完成动态库文件引用。

1.2 连接 XuguDB


使用 UseXugu 方法,传入 XuguDB .NET 驱动连接串创建 XuguDB DbContext实例。

c#
optionsBuilder.UseXugu("IP=127.0.0.1; DB=system; USER=SYSDBA;PWD=SYSDBA; PORT=5138;CHARSET=UTF8;");

二、连接示例程序

本章节将介绍在 EF Core 应用连接 XuguDB 。

2.1 前提条件

  • 已安装具有 .NET 桌面开发 工作负荷的 Visual Studio。
  • 已安装 EF Core 。
  • 已部署 XuguDB 12.0.0 或有能连接访问的虚谷数据库实例。

2.2 操作步骤

2.2.1 定义表模型

cs
using System;
using System.Collections.Generic;

namespace ConsoleApp1.Models
{
    public partial class T1
    {
        public int Id { get; set; }
        public byte[]? C1 { get; set; }
    }
}

2.2.2 创建 XuguDB DbContext实例

根据 连接 XuguDB 说明 创建 XuguDB DbContext实例。

cs
public partial class MyDbContext : DbContext
{
  public MyDbContext()
 {
 }

  public MyDbContext(DbContextOptions<MyDbContext> options)
  : base(options)
  {
  }

  // 表模型对象添加
  public virtual DbSet<T1> T1s { get; set; } = null!;

  protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
  {
    if (!optionsBuilder.IsConfigured)
    {
      // XuguDB DbContext实例
      optionsBuilder.UseXugu(" IP=192.168.2.216; DB=system; USER=SYSDBA; PWD=SYSDBA; PORT=5138;CHARSET=UTF8;");
    }
  }
}

提示

EF Core 后续操作可查看 EF Core 官方文档。

三、常见问题&解决办法

在使用 EF Core 连接 XuguDB 时,可能会遇到各种错误。以下列举一些常见的错误及其处理方法。

3.1 “DbContextOptionsBuilder”未包含“UseXugu”的定义

方言包未正确导入,导致方法识别不到。参考方言包安装正确导入方言包。

3.2 字段ID不能设置成自增长

模型代码中的主键 ID 字段使用了无法作为自增主键的类型,使用 int 类型重新定义模型自增主键。