7.2 实体框架核心支持

MySQL Connector/NET 集成了对 Entity Framework Core (EF Core) 的支持。EF Core 的要求和配置取决于安装的连接器/NET 的版本和您需要的功能。使用下表评估最低要求。

表 7.2 连接器/NET 版本和实体框架核心支持

连接器/网络 英孚核心 6.0 英孚核心 5.0 EF 核心 3.1.1
8.0.28 .NET 6 .NET Standard 2.1(功能集等同于 EF Core 3.1.1 .NET 标准 2.0
8.0.23 至 8.0.27 .NET 5 的 EF Core 6.0 预览支持 .NET Standard 2.1(功能集等同于 EF Core 3.1.1 .NET 标准 2.0
8.0.20 至 8.0.22 不支持 不支持 .NET 标准 2.0

要继续使用 EF Core 2.1,请仅选择连接器/NET 版本 8.0.13 到 8.0.19。要求是 .NET Standard 2.0 或 .NET Framework 4.6.1 及更高版本。

在这个部分:

EF Core 支持的一般要求

使用 MySQL 配置

要将 Entity Framework Core 与 MySQL 数据库一起使用,请执行以下操作:

  1. 安装 NuGet 包。

    当您安装 MySql.EntityFrameworkCoreMySql.Data.EntityFrameworkCore包时,运行您的应用程序所需的所有相关包都会为您安装。有关添加 NuGet 包的说明,请参阅相关的 Microsoft 文档

  2. 在从该类派生的DbContext 类中,覆盖OnConfiguring设置 MySQL 数据提供程序的方法UseMySQL。下面的示例演示如何在 C# 中使用通用连接字符串设置提供程序。

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
         #warning To protect potentially sensitive information in your connection string, 
         you should move it out of source code. See http://go.microsoft.com/fwlink/?LinkId=723263 
         for guidance on storing connection strings.
         
       optionsBuilder.UseMySQL("server=localhost;database=library;user=user;password=password");
    }

限制

EF Core 的连接器/NET 实现具有以下限制:

  • 不支持内存优化表。

最大字符串长度

下表显示了 EF Core 的连接器/NET 实现支持的字符串类型的最大长度。非二进制和二进制字符串类型的长度值以字节为单位,具体取决于使用的字符集。

表 7.3 与 Entity Framework Core 一起使用的字符串的最大长度

数据类型 最大长度 .NET 类型
CHAR 255 string
BINARY 255 byte[]
VARCHAR,VARBINARY 65,535 string,byte[]
TINYBLOB, TINYTEXT 255 byte[]
BLOB,TEXT 65,535 byte[]
MEDIUMBLOB,MEDIUMTEXT 16,777,215 byte[]
LONGBLOB,LONGTEXT 4,294,967,295 byte[]
ENUM 65,535 string
SET 65,535 string

有关字符串类型的存储要求的其他信息,请参阅字符串类型存储要求