在Entity Framework C#ASP.NET中编辑上传的文件时出现问题

时间:2019-07-12 21:21:55

标签: c# asp.net asp.net-mvc entity-framework model-view-controller

尝试编辑Document对象时遇到问题。

我遇到类似这样的异常

  

发生了引用完整性约束冲突:关系一端的'Documento.Id'的属性值与另一端的'File.FileId'的属性值不匹配。'< / p>

有推荐的解决方案吗?

[HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Edit([Bind(Include = "Id,Nombre,Descripcion,CajaId,AreaId")] Documento documento, HttpPostedFileBase upload)
        {


            if (ModelState.IsValid)
            {
                if (upload != null && upload.ContentLength > 0)
                {
                    if (documento.File != null)
                    {

                        db.Files.Remove(documento.File);
                        db.SaveChanges();
                    }

                    var pdf = new File
                    {
                        FileName = System.IO.Path.GetFileName(upload.FileName),
                        FileType = FileType.Pdf,
                        ContentType = upload.ContentType,
                        DocumentoId = documento.Id
                    };
                    using (var reader = new System.IO.BinaryReader(upload.InputStream))
                    {
                        pdf.Content = reader.ReadBytes(upload.ContentLength);
                    }

                    documento.File = pdf;
                }


                db.Entry(documento).State = EntityState.Modified;
                db.SaveChanges();
                return RedirectToAction("Index");
            }
            ViewBag.AreaId = new SelectList(db.Areas, "Id", "Nombre", documento.AreaId);
            ViewBag.CajaId = new SelectList(db.Cajas, "Id", "CodigoUnico", documento.CajaId);
            return View(documento);
        }

0 个答案:

没有答案