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 支持的一般要求
连接器/NET 8.0
MySQL 8.0 服务器(或 MySQL 5.7)
实体框架核心包:
MySql.EntityFrameworkCore
6.0.0+m8.0.2x
(连接器/NET 8.0.28 及更高版本)MySql.EntityFrameworkCore
5.0.0+m8.0.2x
和 3.1.10+m8.0.2x
(连接器/NET 8.0.23 及更高版本)MySql.Data.EntityFrameworkCore
8.0.2x
(连接器/NET 8.0.22 及更早版本)
Connector/NET 支持的.NET Standard或 .NET Framework 的实现 (参见表 7.2,“Connector/NET 版本和 Entity Framework Core 支持”)
网络 | .NET 核心开发工具包
适用于所有受支持平台的 .NET 6.0: https ://dotnet.microsoft.com/download/dotnet/6.0
.NET 5.0 适用于所有支持的平台: https ://dotnet.microsoft.com/download/dotnet/5.0
适用于 Microsoft Windows 的 .NET Core: https ://www.microsoft.com/net/core#windowscmd
适用于 Linux 的 .NET 核心: https ://www.microsoft.com/net/core#linuxredhat
适用于 macOS 的 .NET 核心: https ://www.microsoft.com/net/core#macos
可选:Microsoft Visual Studio 2017、2019、2022 或 Code
笔记有关与连接器/NET 一起使用的最低版本的 Visual Studio,请参阅表 2.1,“相关产品的连接器/NET 要求”。
使用 MySQL 配置
要将 Entity Framework Core 与 MySQL 数据库一起使用,请执行以下操作:
安装 NuGet 包。
当您安装
MySql.EntityFrameworkCore
或MySql.Data.EntityFrameworkCore
包时,运行您的应用程序所需的所有相关包都会为您安装。有关添加 NuGet 包的说明,请参阅相关的 Microsoft 文档。在从该类派生的
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 |
有关字符串类型的存储要求的其他信息,请参阅字符串类型存储要求。