报错:System.Data.Entity.Infrastructure.DbUpdateException 更新条目时出错
2014-03-10 15:52
363 查看
□ 背景
往数据库添加数据,前端验证通过的情况下,提交报错,程序停在了SaveChanges()这行,并报如上错误。
□ 分析
猜想是提交的领域模型不符合数据库要求,但不知道具体哪里出错。网上查资料,有人发现这是"某些字段为空"而引起的错误。每个人面对的场景不一样,打断点调试,发现有一个属性的长度超出了数据库的要求。
出错的语句:
userInfo.LoginPwd = EncryptHelper.GetMd5(userInfo.LoginPwd).Substring(10);
本来是想对加密后的字符串截取前10位,却变成了从第10位开始截取,导致超出了数据库字段长度的上限。
修改如下:
userInfo.LoginPwd = EncryptHelper.GetMd5(userInfo.LoginPwd).Substring(0, 10);
往数据库添加数据,前端验证通过的情况下,提交报错,程序停在了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 更新条目时出错
- System.Data.Entity.Infrastructure.DbUpdateException
- Mysql EF 触发器生成主键id 存储区更新、插入或删除语句影响到了意外的行数(0)。实体在加载后可能被修改或删除。刷新 ObjectStateManager 项 ;System.Data.Entity.Infrastructure.DbUpdateConcurrencyException
- EF 更新数据出现 System.Data.Entity.Infrastructure.DbUpdateConcurrencyException: 异常
- 无法将类型“System.Data.Entity.Infrastructure.DbQuery<TZM.TROA.Model.RoleInfo>”转换为“System.Collections.Gene
- 传入字典的模型项的类型为“System.Data.Entity.Infrastructure.DbQuery`1[MapScience.PovertyAlleviation.Web.Models.Qu
- “System.Data.Entity.Infrastructure.DbUpdateConcurrencyException”类型的异常在 EntityFramework.dll 中发生,但未在用户
- Exception→"Source":"EntityFramework" "Message" :"更新条目时出错。有关详细信息,请参阅内部异常。"
- UpdateException-更新条目时出错分析
- EntityFramework 找不到方法:“Void System.Data.Entity.DbModelBuilder.RegisterEntityType
- 生成Context.cs文件里 找不到这个命名空间 “System.Data.Entity.Infrastructure”。
- MVC中发生System.Data.Entity.Validation.DbEntityValidationException验证异常的解决方法
- 报错:无法将类型"System.Data.EntityState"隐式转换为"System.Data.Entity.EntityState"
- EF修改实体状态(State)时出现异常找不到方法“System.Data.Entity.Infrastructure.set_State”
- 报错:System.Data.Entity.Validation.DbEntityValidationException: 对一个或多个实体的验证失败
- "无法为具有固定名称“System.Data.SqlServerCe.4.0”的 ADO.NET 提供程序加载在应用程序配置文件中注册的实体框架提供程序类型“System.Data.Entity.Sq
- Unable to load type System.Data.Entity.DynamicProxiesXXXXXrequired for deserialization.
- 更新edmx文件 无法生成模型:“System.Data.StrongTypingException: 表“TableDetails”中列“IsPrimaryKey”的值为 DBNull
- C#------引用System.Data.Entity后DbContext依然无法继承解决方法
- EF SaveChanges(),报错 更新条目出错,查看EF详细错误信息,以及如何清除掉EF上下文中错误的信息