Я использую рамку сущности 4.3 в моем приложении MVC 3, при попытке обновить объект (создание и удаление работает отлично) Я получаю эту ошибку:Ошибка при попытке обновить объект
Store update, insert, or delete statement affected an unexpected number of rows (0)
Когда я попал в режим отладки, я увидел, что по методе [HttpPost] нет корма Id поставлялись:
public ActionResult Edit(Feed feed)
{
if (ModelState.IsValid)
{
db.Entry(feed).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.FolderId = new SelectList(db.Folders, "FolderId", "Name", feed.FolderId);
return View(feed);
}
хотя в обычном Получе идентификатора в передаются. это мои объекты
корм:
public class Feed
{
[ScaffoldColumn(false)]
public int FeedId { get; set; }
[StringLength(150, ErrorMessage = "The {0} must be less then {1} charecters")]
public string Title { get; set; }
[ScaffoldColumn(false)]
public string Description { get; set; }
[Required(ErrorMessage = "you must enter a valid link")]
[StringLength(500, ErrorMessage = "The {0} must be less then {1} characters long.")]
public string LinkUrl { get; set; }
[ScaffoldColumn(false)]
public DateTime PublishDate { get; set; }
[ScaffoldColumn(false)]
public string Image { get; set; }
[ForeignKey("Folder")]
[Required(ErrorMessage="you must choose a folder")]
public int FolderId { get; set; }
public virtual Folder Folder { get; set; }
public Feed()
{
PublishDate = new DateTime(2012, 1, 1);
}
}
Папка:
public class Folder
{
public int FolderId { get; set; }
[Required(ErrorMessage = "you must enter a folder name")]
[StringLength(150, ErrorMessage = "the {0} must be less then {1} charecters")]
public string Name { get; set; }
}
Я искал решение, но ни один из них не работал, как пытаются метод обновления, который не существует в DbContext или определение свойства [Key] над FeedId и FolderId.
У вас есть FeedId' на ваш взгляд? Вы должны округлить его значение, например, в скрытом поле, чтобы вернуть его в HTTP Post. –
Thank это была моя проблема. Я добавил @ Html.HiddenFor (model => model.FeedId) к моему представлению –
@Moran - Вам не следует пытаться управлять самим собой ... Это может привести к проблемам, особенно при многопоточности (например, в MVC) или с использованием нескольких контекстов. – Basic