发现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 通过显示错误消息和事件消息来通知您操作成功以及操作失败.一部分错 ...
随机推荐
- ORACLE SEQUENCE用法
引用自: http://www.cnblogs.com/hyzhou/archive/2012/04/12/2444158.html 在oracle中sequence就是序号,每次取的时候它会自动增加 ...
- Javascript 笔记与总结(2-18)正则验证与正则匹配
① 判断 String 是否符合正则要求 patt.test(String); [例]表单提交: a.用户名不能为空,只能是数字及字母,6-11位 b.email 不能为空且格式正确 <!DOC ...
- Web 在线文件管理器学习笔记与总结(17)复制文件 (18)剪切文件
(17)复制文件 ① 复制文件通过copy($src,$dst) 来实现 ② 检测目标目录是否存在,如果存在则继续检测目标目录中是否存在同名文件,如果不存在则复制成功 file.func.php 中添 ...
- tmux使用笔记
tmux是指通过一个终端登录远程主机并运行后,在其中可以开启多个控制台的终端复用软件. 安装tmux需要先安装依赖包libevent,因为libevent安装在临时位置,所以在编译tmux过程中用到n ...
- jquery格式化时间戳 2011-01-01
/* * 时间戳转换日期 * @param <int> unixTime 待时间戳(秒) ...
- CentOS 6 RPM安裝python 2.7
先说第一种方法,通过rpmbuild编译XXX.src.rpm包([1].[2]): 安装依赖:sudo yum install -y make autoconf bzip2-devel db4-de ...
- npm reset config
To reset user defaults Run this in the command line (or git bash on windows): echo "" > ...
- 不绑架输入--document.getElementById("linkage_"+id_type+"_echo").value="";--联动
<script> function w_linkage(id_type) { var selected = $("#linkage_"+id_type+"_t ...
- JAVA Exchanger
//Exchanger工具类的使用案例 //本文给出一个简单的例子,实现两个线程之间交换数据,用Exchanger来做非常简单. import java.util.concurrent.Exchang ...
- 高德地图API应用
高德地图官网:http://api.amap.com/javascript/ 输入关键字,搜索地址功能的网页: 1.引用远程Map Api(js)网址形式(注册后获取) 2.定义个<div> ...