我有理解EntityState.Modified當談到更新與.NET MVC3對象的問題。MVC3與EF 4.1和EntityState.Modified上更新
我有當圖像被上載,存儲的ImageFilePath和ImageContentType的典範。這是創建操作的樣子。
[HttpPost]
public ActionResult Create(SneakPeekCollection collection, HttpPostedFileBase image)
{
try
{
if (image != null)
{
var filepath = Path.Combine(HttpContext.Server.MapPath("../../Uploads"), Path.GetFileName(image.FileName));
image.SaveAs(filepath);
collection.ImageContentType = image.ContentType;
collection.ImageFilePath = "~/Uploads/" + image.FileName;
}
_db.SneakPeekCollections.Add(collection);
_db.SaveChanges();
return RedirectToAction("Index");
}
catch
{
return View();
}
}
嘗試編輯並隨後更新此對象時出現問題。這是我的編輯操作。
[HttpPost]
public ActionResult Edit(int id, SneakPeekCollection collection, HttpPostedFileBase image)
{
try
{
if (image != null)
{
var filepath = Path.Combine(HttpContext.Server.MapPath("../../../Uploads"), Path.GetFileName(image.FileName));
image.SaveAs(filepath);
collection.ImageContentType = image.ContentType;
collection.ImageFilePath = "~/Uploads/" + image.FileName;
}
_db.Entry(collection).State = EntityState.Modified;
_db.SaveChanges();
return RedirectToAction("Index");
}
catch
{
return View();
}
}
我相信這個問題來自於事實,我設置EntityState.Modified改性這標誌着所有屬性。如果我沒有上傳一個新的圖像,來自前端的ImageFilePath和ImageContentType實際上是null,這就是存儲的內容。
我的問題是我該如何解決這個問題?什麼是使用EntityState.Modified的正確方法?
是你的問題解決了嗎?你用什麼解決方案?請告訴我。 –