发现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 通过显示错误消息和事件消息来通知您操作成功以及操作失败.一部分错 ...
随机推荐
- MS14-082引起的问题
经常看报道说打了微软的某某补丁出了什么什么问题,但是本人从未亲身经历过,直到MS14-082这个Office补丁的出现,让我也切身体会了一番,有点中奖的感觉. 具体参见: https://suppor ...
- C#中String.Empty,“”,NULL的区别
一.String.Empty String类的静态只读字段.定义如下: public static readonly string Empty; 二.“” 被赋值为“”的字符串变量,会在栈上保存一个地 ...
- php时间函数time(),date(),mktime()区别
php时间函数time(),date(),mktime()区别 浏览:1161 发布日期:2014/12/18 分类:系统代码 关键字: php时间函数 time() date()mktime() ...
- wordpress the_date 方法 偶尔为空的问题
估计很多人遇到这个问题: 一来是the_title(),the_permalink(),the_date()一路用下来,很正常也很正确 不爱读官方文档,因为文档中有个特别提示 文档:http://co ...
- javaWeb总结——session
一.session简单介绍 在web开发中,服务器为每个用户浏览器创建一个会话对象,即session对象.一个浏览器独占一个session对象.因此,在需要保护用户数据时,服务器程序可以把用户数据写到 ...
- JAVA中的throws和throw的区别
Java 一直对java中的throws和throw不太理解.最近一直在查这两个方面的资料,算是能明白一点吧.如果我下面的观点哪有不对,希望指出来,我加以改进. throw:( ...
- 【转】 Build a RESTful Web service using Jersey and Apache Tomcat 2009
Build a RESTful Web service using Jersey and Apache Tomcat Yi Ming Huang with Dong Fei Wu, Qing GuoP ...
- UBUNTU 14.04 安装 OPENCV 2.4.9
1. 从OpenCV.org 下载源代码 opencv-2.4.9.zip 2. 解压到准备好的目录 unzip opencv-2.4.9.zip 3. 进入源码目录,创建release目录 cd ...
- VS2013编译Qt5.6.0静态库(乌合之众)
获取qt5.6.0源码包 直接去www.qt.io下载就好了,这里就不详细说了. 这里是我已经编译好的** 链接:http://pan.baidu.com/s/1pLb6wVT 密码: ak7y ** ...
- android jdbc 远程数据库
http://blog.csdn.net/conowen/article/details/7435231/