首页 > 代码库 > 报错:System.Data.Entity.Infrastructure.DbUpdateException 更新条目时出错

报错:System.Data.Entity.Infrastructure.DbUpdateException 更新条目时出错

背景

往数据库添加数据,前端验证通过的情况下,提交报错,程序停在了SaveChanges()这行,并报如上错误。

分析

猜想是提交的领域模型不符合数据库要求,但不知道具体哪里出错。网上查资料,有人发现这是"某些字段为空"而引起的错误。每个人面对的场景不一样,打断点调试,发现有一个属性的长度超出了数据库的要求。

出错的语句: 
userInfo.LoginPwd = EncryptHelper.GetMd5(userInfo.LoginPwd).Substring(10); 
本来是想对加密后的字符串截取前10位,却变成了从第10位开始截取,导致超出了数据库字段长度的上限。

修改如下: 
userInfo.LoginPwd = EncryptHelper.GetMd5(userInfo.LoginPwd).Substring(0, 10);

报错:System.Data.Entity.Infrastructure.DbUpdateException 更新条目时出错