「128」の文字列の最大長:Entity Frameworkの検証混乱 - アクションの結果の方法私の編集や作成、EF4は、内部メッセージは述べてDbEntityValidationExceptionをスローします、私は混乱の問題に直面しています
Bodyフィールドは最大長が '128'の文字列または 配列タイプでなければなりません。
問題のモデルは次のようになります。実際のデータベースに
[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; }
}
「本文」欄には、Text型であるので、そこには明確な制限はありません。私が投稿しようとしているデータは、このです:
<p> This is an example to confirm that new articles are looking right.</p> <p> <img alt="" src="http://www.google.co.nz/logos/2011/houdini11-sr.jpg" style="width: 160px; height: 56px; float: left;" /></p>
編集方法の一例は次のようになります。
[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();
}
私は問題を引き起こしている可能性のあるコードやデータベースに何も表示されませんが、だから私はどこを見ますか?
マジック。それが問題でした。ありがとう。 –
これは私の問題を解決しましたが、私たちの場合、いくつかの配備では問題であり、他の配備では問題でした。 EF 4.1 dllの少し異なるバージョンが展開されたことが分かります。 – tpower
素晴らしい! Uは私の一日を作った。 –