在使用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中字段错误的更多相关文章

  1. EF中限制字段显示长度

    在EF中有些添加的字段 文本显示超多文字,想截取显示又没有截取功能. 怎么办? 我们可以在EF中类的属性中设置 你想限制这个用户名只能有10个字符长度 public String UserName { ...

  2. EF中修改对象的值的问题。。。(字段超级多的时候)

    一般EF中修改单个对象的值,我是这样处理的. 如:DBEntities db=new DBEntities(); student stu = db.student.firstOrdefault(m=& ...

  3. 【MM系列】SAP ABAP 编辑字段出现:对象编辑中的错误

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 编辑字段出现: ...

  4. EF 中 Code First 的数据迁移以及创建视图

    写在前面: EF 中 Code First 的数据迁移网上有很多资料,我这份并没什么特别.Code First 创建视图网上也有很多资料,但好像很麻烦,而且亲测好像是无效的方法(可能是我太笨,没搞成功 ...

  5. EF中的Code First

     一些概念 Ÿ POCO POCO(Plain Old CLR Object)的概念是从java的POJO借用而来,而两者的含义是一致的,不同的仅仅是使用的语言不一样.所以POCO的解释就是“Plai ...

  6. EF中逆变和协变

    EF中的增删改查: 实现步骤: 1.声明一个EF的上下文. bjhksjEntities dbContext = new bjhksjEntities(); 2.声明一个实体. HKSJ_USERS ...

  7. 关于EF中出现FOREIGNKEY约束可能会导致循环或多重级联路径的问题

    ef中,我们创建外键的时候需要注意,否则会出现标题所示问题. 例:有项目表,项目收藏表,用户表 项目表有如下字段:ProjectId,InputPersonId等 项目收藏表有如下字段:Project ...

  8. 修改MySQL数据库中表和表中字段的编码方式的方法

    今天向MySQL数据库中的一张表添加含有中文的数据,可是老是出异常,检查程序并没有发现错误,无奈呀,后来重新检查这张表发现表的编码方式为latin1并且原想可以插入中文的字段的编码方式也是latin1 ...

  9. Team Foundation 中的错误和事件消息

    Visual Studio Team System Team Foundation 中的错误和事件消息 Team Foundation 通过显示错误消息和事件消息来通知您操作成功以及操作失败.一部分错 ...

随机推荐

  1. JSP编程-步步为营

    [第一个JSP举例] header.jsp <%@ page language="java" contentType="text/html; charset=utf ...

  2. 《Java核心技术卷二》笔记(三)正则表达式

    正则表达式语法 一个正则表达式描述了字符串的构成规则(模式).如果一个具体的字符串正好符合正则表达式描述的这个规则,这个字符串就是与表达式匹配的.先看一下怎么描述这种规则,也就是正则表达式语法.正则表 ...

  3. The P4 Language Specification v1.0.2 Header and Fields

    前言 本文参考P4.org网站给出的<The P4 Language Specification v1.0.2>的第二部分首部及字段,仅供学习:). 欢迎交流! Header and Fi ...

  4. mobile cpu上禁用alpha test的相关总结

       因为,每家芯片的特性不同,根据向framebuffer写法的不同,分为tile-based的mobile cpu,如ImgTec PowerVR,ARM Mali,一部分老版本Qualcomm  ...

  5. treeview子节点文本过长超过DIV自动换行CSS解决

    //文本不换行 .ygtvcell.ygtvcontent{ white-space: nowrap; } //文本超过div出现滚动条 .main .buttom .right{ overflow- ...

  6. 使用phpstorm和xdebug实现远程调试

    使用phpstorm和xdebug实现远程调试 2012-05-23 10:06:35 vs的断点调试功能很强大有木有,能查看所有变量有木有.php调试很麻烦有木有,echo,var_dump写得你想 ...

  7. [转]理解OAuth 2.0

    作者: 阮一峰 OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版. 本文对OAuth 2.0的设计思路和运行流程,做一个简明通俗的解释, ...

  8. PDB文件:每个开发人员都必须知道的

    PDB Files: What Every Developer Must Knowhttp://www.wintellect.com/CS/blogs/jrobbins/archive/2009/05 ...

  9. WCF Basic Concept

    http://msdn.microsoft.com/library/ee354180.aspx Steps: Designing a Service Contract Implementing a W ...

  10. Bootstrap页面布局17 - BS选项卡

    代码结构: <div class='container-fluid'> <h2 class='page-header'>Bootstrap 选项卡</h2> < ...