美文网首页
EF Core MySql Migration 中长字符串生成错

EF Core MySql Migration 中长字符串生成错

作者: 寻找无名的特质 | 来源:发表于2021-11-30 06:11 被阅读0次

这两天在研究IdentityServer4 Admin,当使用MySql作为数据源时,初始化数据库时总是出现错误,仔细研究,发现是生成的sql语句不对,产生的Sql语句是这样的:

CREATE TABLE `ApiSecrets` (
    `Id` int NOT NULL AUTO_INCREMENT,
    `Description` varchar(1000) NULL,
    `Value` longtext CHARACTER SET utf8mb4(4000) NOT NULL,
    `Expiration` datetime(6) NULL,
    `Type` varchar(250) NOT NULL,
    `Created` datetime(6) NOT NULL,
    `ApiResourceId` int NOT NULL,
    CONSTRAINT `PK_ApiSecrets` PRIMARY KEY (`Id`),
    CONSTRAINT `FK_ApiSecrets_ApiResources_ApiResourceId` FOREIGN KEY (`ApiResourceId`) REFERENCES `ApiResources` (`Id`) ON DELETE CASCADE
);

这里longtext CHARACTER SET utf8mb4(4000)很显然是错误的,查看Migrate代码,发现数据行定义语句如下:

Value = table.Column<string>(maxLength: 4000, nullable: false),

应该转换时出了错误,修改为如下语句:

Value = table.Column<string>(type: "varchar(4000) CHARACTER SET utf8mb4", maxLength: 4000, nullable: false),

问题解决了。

相关文章

网友评论

      本文标题:EF Core MySql Migration 中长字符串生成错

      本文链接:https://www.haomeiwen.com/subject/ybgatrtx.html