0

私のデータベースでは、私の FileLocation は VarChar(Max) です。この EntityValidationErrors -System.Data.Entity.Validation.DbEntityValidationException: Validation failed for one or more entities の原因がわかりません。このエラーは、db.SaveChanges() 関数の実行時に発生します。

モデル:

   public Assignment()
    {
        this.CourseAvailables = new HashSet<CourseAvailable>();
    }

    public string AssignmentID { get; set; }
    public Nullable<System.DateTime> SubmissionDate { get; set; }
    public string Status { get; set; }
    public Nullable<decimal> Mark { get; set; }
    public string Comments { get; set; }
    public string FileLocation  { get; set; }

    public virtual ICollection<CourseAvailable> CourseAvailables { get; set; }
}

コントローラ:

        [HttpPost]
      public ActionResult Create(Assignment assignment)
    {
    if (ModelState.IsValid)
    {

        if (Request.Files.Count > 0)
        {
            HttpPostedFileBase assignmentFile = Request.Files[0];
            if (assignmentFile.ContentLength > 0)
            {
                var fileName = Path.GetFileName(assignmentFile.FileName);
                assignment.FileLocation = Path.Combine(Server.MapPath("~/Content/Image"), fileName);
                assignmentFile.SaveAs(assignment.FileLocation);
            }


        }
            db.Assignments.Add(assignment);        
            db.SaveChanges();    
            return RedirectToAction("Index");
    }
    return View(assignment);
}

意見:

<% using (Html.BeginForm("Create", "Assignment", FormMethod.Post, new { enctype = "multipart/form-data" }))
  <%: Html.TextBoxFor(model => model.FileLocation, new { type="file"})%>
  <%: Html.ValidationMessageFor(model => model.FileLocation) %>
4

2 に答える 2

3

どの列のデータが切り捨てられるかについて言及していますか? その列に保存しようとしているデータが長すぎます。つまり、定義された最大長を超えています。

于 2014-08-05T06:14:50.473 に答える