如何将PNG图片保存至数据库的varbinary(max)类型字段?
解决方案
你只需要把转换得到的二进制数据直接赋值给EmployeeInfo模型的Sign属性,再通过Entity Framework将实体保存到数据库即可,无需写入本地文件。
修改后的控制器代码
if (!String.IsNullOrWhiteSpace(employeeInfo.SignatureDataUrl)) { var base64Signature = employeeInfo.SignatureDataUrl.Split(",")[1]; var binarySignature = Convert.FromBase64String(base64Signature); // 将二进制数据赋值给Sign字段 employeeInfo.Sign = binarySignature; } // 通过DbContext保存到数据库(根据业务场景选择新增或更新) using (var context = new YourDbContext()) { // 如果是新增员工信息 context.EmployeeInfos.Add(employeeInfo); // 如果是更新现有员工信息(确保实体已被上下文跟踪,或者使用context.Update(employeeInfo)) // context.EmployeeInfos.Update(employeeInfo); context.SaveChanges(); }
关键说明
- 你的
EmployeeInfo模型中Sign属性的类型是byte[]?,和数据库的varbinary(max)类型完全匹配,直接赋值即可完成映射。 - 确保你的DbContext实例正确配置,并且
EmployeeInfo对应的DbSet已正确定义。 - 根据实际业务场景选择新增(
Add)或更新(Update)操作,避免数据错误。
内容的提问来源于stack exchange,提问作者Anjali
相关产品推荐
相关产品推荐

