实体框架 – 实体框架验证混淆 – 最大字符串长度为’128′
发布时间:2020-12-15 19:09:26 所属栏目:asp.Net 来源:网络整理
导读:我面临一个令人困惑的问题,其中在我的编辑或创建操作结果方法,EF4将抛出一个DbEntityValidationException与内部消息说: The field Body must be a string or array type with a maximum length of ‘128’. 有问题的模型如下: [Table("tblArticles")]pub
我面临一个令人困惑的问题,其中在我的编辑或创建操作结果方法,EF4将抛出一个DbEntityValidationException与内部消息说:
有问题的模型如下: [Table("tblArticles")] public class Article { [Key] public int ID { get; set; } [Required(ErrorMessage="Title must be included")] public string Title { get; set; } [AllowHtml] public string Body { get; set; } [Required(ErrorMessage="Start Date must be specified")] [Display(Name="Start Date")] [DisplayFormat(DataFormatString="dd-mm-yyyy")] public DateTime? StartDate { get; set; } [Required(ErrorMessage = "End Date must be specified")] [Display(Name = "End Date")] public DateTime? EndDate { get; set; } public int Priority { get; set; } public bool Archived { get; set; } public virtual ICollection<ArticleImage> Images { get; set; } } 实际数据库中的“Body”字段是Text类型,因此没有明显的限制。我试图发布的数据是:
Edit方法的示例如下所示: [HttpPost] public ActionResult Edit(Article article) { if (ModelState.IsValid) { try { articleRepository.Update(article); } catch (DbEntityValidationException dbevEx) { ErrorSignal.FromCurrentContext().Raise(dbevEx); ModelState.AddModelError("FORM",dbevEx); return View("Edit",article); } // Other exception handling happens... } return RedirectToAction("Index"); } 最后,实际上做咕噜工作的方法是: public void Update(T Entity) { dbset.Attach(Entity); db.Entry(Entity).State = System.Data.EntityState.Modified; db.Commit(); } 我在代码或数据库中看不到任何可能导致问题的东西,所以我应该在哪里看? 解决方法
代码中的字符串字段的默认长度为128.如果使用EF验证,它将抛出异常。您可以使用以下方式扩展大小:
[StringLength(Int32.MaxValue)] public string Body { get; set; } 这篇文章变得多么流行,所以我添加第二种方法,也工作: [MaxLength] public string Body { get; set; } StringLengthAttribute来自System.ComponentModel.DataAnnotations程序集,MaxLengthAttribute来自EntityFramework程序集(EF 4.1)。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- UnobtrusiveJavaScriptEnabled键在.NET中的作用是什么?
- asp.net – 我使用什么Active Directory字段来唯一标识用户
- asp.net-core – 在IIS Express上运行MVC6 Beta8应用程序
- asp.net-mvc – 如何使用Visual Studio 2013和Entity Frame
- asp.net – .Net Core 2.0 – 获取AAD访问令牌以与Microsof
- 尝试使用asp.net流式传输PDF文件会产生“损坏的文件”
- asp.net-mvc-3 – 验证摘要消息中的链接
- asp.net – 通过控件循环
- asp.net – 是否有支持请求参数连接的URL构建器?
- asp.net-mvc – ASP.NET MVC 2中的空查询字符串参数的模型绑
推荐文章
站长推荐
- asp.net – AspNetCore.Mvc与AspNetCore.Mvc.Cor
- asp.net – GET与POST真的很重要吗?
- asp.net-mvc – 如何在Kendo UI菜单上的多个组之
- asp.net-mvc-2 – 如何在asp.net mvc 2中使用fak
- asp.net(c#)动态修改webservice的地址和端口(动
- asp.net-mvc-3 – 使用asp.net MVC在Orchard CMS
- ASP.NET:Viewstate并以编程方式添加用户控件
- asp.net – 使用ajax / jquery的未知Web方法
- asp.net – Web API可查询 – 如何应用AutoMappe
- asp.net-mvc – 具有指定Controller和Action的Ht
热点阅读