Я искал вокруг немного сейчас. Я попробовал пару решений, связанных с ловли OptimisticConcurrency и добавления:DbUpdateConcurrencyException при изменении данных
"@ Html.HiddenFor (модель => model.OrganizationID)"
к моей странице удаления. Мой индекс (список), создание и редактирование страниц работают как шарм. Однако, когда я иду, чтобы удалить строку он дает мне ошибку ниже: обновление
DbUpdateConcurrencyException
магазина, вставка или удаление заявления повлиял неожиданное количества строк (0). Объекты могут быть изменены или удалены с момента загрузки объектов. Обновить записи ObjectStateManager.
Я выполнил учебное пособие по созданию приложения Database First. В настоящее время я просто собираю данные из таблицы «Мои организации», пока я не смогу заставить ее работать плавно. Моя модель организации выглядит следующим образом (который был автоматически генерируется из «Добавить код Generation Item»):
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated from a template.
//
// Manual changes to this file may cause unexpected behavior in your application.
// Manual changes to this file will be overwritten if the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace VAGTC.Models
{
using System;
using System.Collections.Generic;
public partial class Organization
{
public Organization()
{
this.Contact_Title = new HashSet<Contact_Title>();
this.Organization_Address = new HashSet<Organization_Address>();
this.Organization_Business_Type = new HashSet<Organization_Business_Type>();
this.Organization_Country = new HashSet<Organization_Country>();
this.Organization_Email = new HashSet<Organization_Email>();
this.Organization_Membership = new HashSet<Organization_Membership>();
this.Organization_Notes = new HashSet<Organization_Notes>();
this.Organization_Phone = new HashSet<Organization_Phone>();
this.Organization_Website = new HashSet<Organization_Website>();
this.Contacts = new HashSet<Contact>();
this.Organization_Industry_Code = new HashSet<Organization_Industry_Code>();
}
public int OrganizationID { get; set; }
public string Name { get; set; }
public virtual ICollection<Contact_Title> Contact_Title { get; set; }
public virtual ICollection<Organization_Address> Organization_Address { get; set; }
public virtual ICollection<Organization_Business_Type> Organization_Business_Type { get; set; }
public virtual ICollection<Organization_Country> Organization_Country { get; set; }
public virtual ICollection<Organization_Email> Organization_Email { get; set; }
public virtual ICollection<Organization_Membership> Organization_Membership { get; set; }
public virtual ICollection<Organization_Notes> Organization_Notes { get; set; }
public virtual ICollection<Organization_Phone> Organization_Phone { get; set; }
public virtual ICollection<Organization_Website> Organization_Website { get; set; }
public virtual ICollection<Contact> Contacts { get; set; }
public virtual ICollection<Organization_Industry_Code> Organization_Industry_Code { get; set; }
}
}
Это Delete ActionResult в моем контроллере Организации:
//
// GET: /Organization/Delete/5
public ActionResult Delete(int id)
{
using (var db = new VAGTCEntities())
{
return View(db.Organizations.Find(id));
}
}
//
// POST: /Organization/Delete/5
[HttpPost]
public ActionResult Delete(int id, Organization organization)
{
try
{
// TODO: Add delete logic here
using (var db = new VAGTCEntities())
{
db.Entry(organization).State = System.Data.EntityState.Deleted;
db.SaveChanges();
}
return RedirectToAction("Index");
}
catch
{
return View();
}
}
и на моей странице индекса он объявляет первичный ключ:
@ Html.ActionLink ("Удалить", "Удалить", новый {ID = item.OrganizationID})
Из любопытства я решил попробовать добавить
"@ Html.HiddenFor (модель => model.OrganizationID)"
на дно, под BeginForm, а в верхней части страница в полевых знаках и под условными обозначениями:
@using (Html.BeginForm()) {
<p>
@Html.HiddenFor(model => model.OrganizationID)
<input type="submit" value="Delete" /> |
@Html.ActionLink("Back to List", "Index")
</p>
}
Низкий и вот - это сработало. Я все еще хочу опубликовать это! Возможно, кто-то еще найдет его, и это поможет им. Хотя я не знаю 100%, почему это так - может кто-то пролить свет на этот вопрос?