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
Atas ialah kandungan terperinci 解决 ASP.NET Core MySql varchar 字符串截取实例教程. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!