微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

解决 ASP.NET Core MySql varchar 字符串截取实例教程

ASP.NET Core 中使用 MysqL,如果字段类型为varchar,不管设置多少长度,插入或更新数据的时候,会自动截断(截取 255 长度的字符)。

出现问题的原因,就是使用了MysqL.Data.EntityFrameworkCore程序包(我使用的版本是7.0.7-m6),可能是其版本问题,升级版本的话,可能问题不会出现了。

解决方:将 MysqL 所有字段类型为varchar(字段长度大于 255)的字段,类型都改为text(可以不设长度,认为 0)。

然后,EF Core 映射配置修改如下:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{var entity = modelBuilder.Entity<Entity>();

    entity.Property(p => p.Body).HasColumnType(text); //add HasColumnType(text)base.OnModelCreating(modelBuilder);
}

参考资料:

  • .Net Core Entity Framework MysqL - string fields store 255 symbols only

  • MysqL connector for .Net core truncates text to 255 characters

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐