发现EF中字段错误
在使用EF时,报错:
对一个或多个实体的验证失败。有关详细信息,请参见“EntityValidationErrors”属性
添加一个验证方法:
代码:
using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Web.Http; using Rongzi.BZone.Functions; using Rongzi.BZone.Common.Util; using System.Data.Entity.Validation; using System.Text; using System.IO; namespace Rongzi.BZone.Controllers.Manage { public class ManageUserInfoApiController : ApiController { RongziBZoneEntities entity = new RongziBZoneEntities(); /// <summary> /// 后台认证用户 /// </summary> /// <param name="req"></param> /// <returns></returns> [HttpPost] public ResponseContext EditCustomerInfo(RequestContext<CustomerInfo> req) { ResponseContext result = new ResponseContext(); var obj = req.Content; if (obj == null) { result.Head.Ret = -; result.Head.Code = ErrCode.ParameterError; return result; } CustomerInfo info = entity.CustomerInfo.Where(x => x.IsDeleted == false).Where(x => x.CustomerID==obj.CustomerID).FirstOrDefault(); if (info == null) { result.Head.Ret = -; result.Head.Code = ErrCode.DataIsnotExist; return result; } info.IdentificationState = obj.IdentificationState; info.IdentificationMemo = obj.IdentificationMemo; info.IsDeleted = obj.IsDeleted; info.UpdateUser = obj.UpdateUser; info.UpdateTime = DateTime.Now; IsValided<CustomerInfo>(info); entity.SaveChanges(); return result; } public bool IsValided<T>(T model) where T : class { DbEntityValidationResult vResult = entity.Entry<T>(model).GetValidationResult(); if (vResult == null) return true; if (vResult.IsValid) return true; StringBuilder builder = new StringBuilder(); foreach (DbValidationError item in vResult.ValidationErrors) { builder.Append("出错字段:" + item.PropertyName); builder.Append("<br/>"); builder.Append("错误描述:" + item.ErrorMessage); builder.Append("<br />"); } throw new Exception("数据验证失败," + builder.ToString()); return false; } #endregion } }
这样就可以直接查出那些错,
我这个就是有个字段customerCard字段长度在数据库中由50改成了200,我看ef是string类型,就没有在意,然后就报错,长度不能超过50
这个也可以直接关掉ef的验证
entity.Configuration.ValidateOnSaveEnabled = false;
这样也可以
发现EF中字段错误的更多相关文章
- EF中限制字段显示长度
在EF中有些添加的字段 文本显示超多文字,想截取显示又没有截取功能. 怎么办? 我们可以在EF中类的属性中设置 你想限制这个用户名只能有10个字符长度 public String UserName { ...
- EF中修改对象的值的问题。。。(字段超级多的时候)
一般EF中修改单个对象的值,我是这样处理的. 如:DBEntities db=new DBEntities(); student stu = db.student.firstOrdefault(m=& ...
- 【MM系列】SAP ABAP 编辑字段出现:对象编辑中的错误
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 编辑字段出现: ...
- EF 中 Code First 的数据迁移以及创建视图
写在前面: EF 中 Code First 的数据迁移网上有很多资料,我这份并没什么特别.Code First 创建视图网上也有很多资料,但好像很麻烦,而且亲测好像是无效的方法(可能是我太笨,没搞成功 ...
- EF中的Code First
一些概念 POCO POCO(Plain Old CLR Object)的概念是从java的POJO借用而来,而两者的含义是一致的,不同的仅仅是使用的语言不一样.所以POCO的解释就是“Plai ...
- EF中逆变和协变
EF中的增删改查: 实现步骤: 1.声明一个EF的上下文. bjhksjEntities dbContext = new bjhksjEntities(); 2.声明一个实体. HKSJ_USERS ...
- 关于EF中出现FOREIGNKEY约束可能会导致循环或多重级联路径的问题
ef中,我们创建外键的时候需要注意,否则会出现标题所示问题. 例:有项目表,项目收藏表,用户表 项目表有如下字段:ProjectId,InputPersonId等 项目收藏表有如下字段:Project ...
- 修改MySQL数据库中表和表中字段的编码方式的方法
今天向MySQL数据库中的一张表添加含有中文的数据,可是老是出异常,检查程序并没有发现错误,无奈呀,后来重新检查这张表发现表的编码方式为latin1并且原想可以插入中文的字段的编码方式也是latin1 ...
- Team Foundation 中的错误和事件消息
Visual Studio Team System Team Foundation 中的错误和事件消息 Team Foundation 通过显示错误消息和事件消息来通知您操作成功以及操作失败.一部分错 ...
随机推荐
- php一些技巧函数
current() next() prev() 范例 <?php $people = array("Peter", "Joe", "Glenn& ...
- var object dynamic的区别
一.var var本身不是一种类型,只是一种语法糖:var声明的变量在赋值的时候即已决定其变量类型,编译时会进行校验. 二.object object是所以类型的基类,故可以赋任何类型的值. 三.dy ...
- The P4 Language Specification v1.0.2 Header and Fields
前言 本文参考P4.org网站给出的<The P4 Language Specification v1.0.2>的第二部分首部及字段,仅供学习:). 欢迎交流! Header and Fi ...
- Memcached 笔记与总结(6)PHP 实现 Memcached 的一致性哈希分布算法
首先创建一个接口,有 3 个方法: addServer:添加一个服务器到服务器列表中 removeServer:从服务器列表中移除一个服务器 lookup:在当前的服务器列表中找到合适的服务器存放数据 ...
- userDefaults
// // RootViewController.m #import "RootViewController.h" @interface RootViewController () ...
- 合金装备V 幻痛 制作技术特辑
合金装备V:幻痛 制作特辑 资料原文出自日版CGWORLD2015年10月号 在[合金装备4(Metal Gear Solid IV)]7年后,序章作品[合金装备5 :原爆点 (Metal Gea ...
- PHP正则表达式及实例
PHP正则表达式及实例 博客分类: Php / Pear / Mysql / Node.js 正则表达式PHPWordPressFPApache 关联: 正则表达式 去除连续空白 + 获取url + ...
- HTML5 测验记录
结果:11/20 您的回答: 1.HTML5 之前的 HTML 版本是? 您的回答:HTML 4 正确答案:HTML 4.01 2.HTML5 的正确 doctype 是? 您的回答:<!DOC ...
- VCL自带的TabControl真心不好用...
不是说功能, 而是指自绘能力, 开启OwnerDraw以后, 画是可以画了, 可是为啥每个Tab页头的边框不能变捏 只能是灰秃秃的, 感觉很不和谐 RZ的TabControl很强大, 可惜想用它需要带 ...
- 我的第一个chrome扩展(1)——读样例,实现时钟
学习chrome扩展开发: 与网页类似,需要的知识:html,javascript chrome扩展程序的构成: manifest.json:对扩展程序的整体描述文件 { "manifest ...