Entity Framework Validation confusion - maximum string length of '128'

Я столкнулся с запутанной проблемой, когда в моих методах результата действия Edit или Create, 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; }
}

Поле "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();
}

Я не вижу ничего в коде или в базе данных, что могло бы вызвать проблему, так где еще мне искать?

31
задан Ladislav Mrnka 24 March 2011 в 08:18
поделиться