MySQL Connector/NET 集成了对 Entity Framework Core (EF Core) 的支持。EF Core 的要求和配置取决于安装的 Connector/NET 版本以及您需要的功能。使用下表评估最低要求。
表 7.2 Connector/NET 版本和 Entity Framework Core 支持
Connector/NET | EF Core 9.0 | EF Core 8.0 | EF Core 7.0 | EF Core 6.0 |
---|---|---|---|---|
9.1.0 | .NET 9 预览版、.NET 8、.NET 6 | 不支持 | .NET 6 | |
9.0.0 | .NET 8、.NET 6 | 不支持 | .NET 6 | |
8.3.0 和 8.4.0 | 不支持 | .NET 8、.NET 7、.NET 6 | .NET 7、.NET 6 | .NET 6 |
8.2.0 | 不支持 | .NET 8 预览版 | .NET 7 | .NET 6 |
8.1.0 | 不支持 | 不支持 | .NET 7 | .NET 6 |
8.0.33 | 不支持 | 不支持 | .NET 7 | .NET 6 |
8.0.28 | 不支持 | 不支持 | 不支持 | .NET 6 |
8.0.23 至 8.0.27 | 不支持 | 不支持 | 不支持 | EF Core 6.0 预览版 |
本节内容
对 EF Core 支持的一般要求
服务器版本:MySQL 8.0 或更高版本
Entity Framework Core 包(将
n
替换为有效的数字以完成软件包的完整版本)MySql.EntityFrameworkCore
8.0.n
+MySQL8.n
MySql.EntityFrameworkCore
6.0.n
+MySQL8.n
Connector/NET 支持的 .NET Standard 或 .NET Framework 实现(请参阅 表 7.2 “Connector/NET 版本和 Entity Framework Core 支持”)
.NET | .NET Core SDK
适用于所有受支持平台的 .NET 8.0: https://dotnet.microsoft.com/es-es/download/dotnet/8.0
适用于所有受支持平台的 .NET 6.0: https://dotnet.microsoft.com/download/dotnet/6.0
适用于 Microsoft Windows 的 .NET Core: https://www.microsoft.com/net/core#windowscmd
适用于 Linux 的 .NET Core: https://www.microsoft.com/net/core#linuxredhat
适用于 macOS 的 .NET Core: https://www.microsoft.com/net/core#macos
可选:Microsoft Visual Studio 2017、2019、2022 或 Code
注意有关与 Connector/NET 一起使用的最低 Visual Studio 版本,请参阅 表 2.1 “Connector/NET 对相关产品的要求”。
使用 MySQL 进行配置
要将 Entity Framework Core 与 MySQL 数据库一起使用,请执行以下操作
安装 NuGet 包。
安装
MySql.EntityFrameworkCore
或MySql.Data.EntityFrameworkCore
包时,还会安装运行应用程序所需的所有相关包。有关添加 NuGet 包的说明,请参阅相关的 Microsoft 文档。在从
DbContext
类派生的类中,重写OnConfiguring
方法以使用UseMySQL
设置 MySQL 数据提供程序。以下示例演示了如何使用 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"); }
限制
Connector/NET 实现的 EF Core 具有以下限制
不支持内存优化表。
最大字符串长度
下表显示了 Connector/NET 实现的 EF Core 支持的字符串类型的最大长度。长度值以字节为单位,适用于非二进制和二进制字符串类型,具体取决于使用的字符集。
表 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 |
有关字符串类型的存储要求的更多信息,请参阅 字符串类型存储要求。