.NETCore使用EF保存图片报错:OracleExceptiol: ORA|01460:转换请求无法实施或不合理|C/S开发框架

.NETCore使用EF保存图片报错:OracleExceptiol: ORA-01460:转换请求无法实施或不合理
错误原因
由于C# 类型(byte[])存入 Oracle DB 中的 Blob 类型,在数据超出32K长度后会出现ORA-01460错误。
解决方案
使用ModelBuilder定义字段类型:
builder.Entity<dt_Images>().Property(p => p.ImgLarge).HasColumnName(nameof(dt_Images.ImgLarge)).HasColumnType("BLOB");
builder.Entity<dt_Images>().Property(p => p.ImgSmall).HasColumnName(nameof(dt_Images.ImgSmall)).HasColumnType("BLOB");
或者给模型的属性添加特性:
[Column(TypeName = "BLOB")]
public System.Byte[] ImgSmall { get; set; }
[Column(TypeName = "BLOB")]
public System.Byte[] ImgLarge { get; set; }
扫一扫加作者微信