Сообщение об ошибке: «Оператор хранения, вставки или удаления затронул неожиданное количество строк (0). Возможно, объекты были изменены или удалены с момента загрузки объектов. Обновите записи ObjectStateManager.»
Привет всем,
Я создал TPH Code First (Table Per Hierarchy) в MVC и EF с компактной базой данных SQL.
Вот диаграмма классов / Иерархия:
Диаграмма классов
Client и SalesRep оба наследуют класс BaseUser. Ключом является «ID пользователя», и он закодирован с аннотацией данных [Key]
(я знаю, что «ID» должен также установить его)
Вот где я нахожусь: я могу заполнить базу данных несколькими записями. Когда я пытаюсь установить "UserID" в методе заполнения, он, кажется, игнорирует его и просто применяет UserID в числовом порядке ... (мне кажется, нормально?)
Более того, вот мой DbContext
public class SiteDB:DbContext
{
public DbSet<BaseUser> AllUsers { get; set; }//enable TPH
public DbSet<SalesRep> SalesReps { get; set; }
public DbSet<Client> Clients { get; set; }
}
Далее
Я создал контроллер для клиентов -> ClientsController со строго типизированными представлениями Razor. С этим. Теперь у меня есть CRUD для клиентов. Я могу создавать новых клиентов без каких-либо проблем, но когда я пытаюсь редактировать запись клиента, я получаю сообщение об ошибке, указанное выше.
Я заметил кое-что интересное. Я прошел по коду, и ошибка произошла в db.SaveChanges ();
Когда клиент возвращается обратно в метод ActionResult Edit, UserID = 0! Bizarre? Я не уверен, является ли это ошибкой или фактической проблемой, которая вызывает это.
UserID = 0
Ваша помощь в этом приветствуется. Спасибо!