Ошибка при удалении и добавлении записи из сущности EF CodeFirst в MS SQL - C#

Узнай цену своей работы

Формулировка задачи:

Я только начинаю изучать ASP.NET и связанные с ним технологии, поэтому буду очень признателен за любую конструктивную критику с пояснениями. Структура созданная при помощи EF Code First. Приведена ниже. Есть предположение, что надо работать с сущностями не зависимо от контекста, т.е. я так понял, что все действия только через currentCustomer которого мы извлекаем один раз, допустим равного
Customer currentCustomer = _db.Customers.First()
Так как доступ к базе данных надо минимизировать, то хотелось бы, что бы в начале все изменения были занесены в объект currentCustomer класса Customer или в коллекции связанные с ним Orders или OrderLines, а потом уже при выходе все сохранялось бы в БД один раз скопом, если это конечно возможно. Но столкнулся с проблемой при удалении двух и более объектов из коллекции OrderLine выдается сообщение

Операция завершилась с ошибкой. Не удалось изменить связь, поскольку один или несколько свойств внешнего ключа не допускают значения NULL. При изменении связи соответствующему свойству внешнего ключа присваивается значение NULL. Если внешний ключ не поддерживает значений NULL, должна быть определена новая связь, свойству внешнего ключа должно быть присвоено другое значение, отличное от NULL, либо необходимо удалить несвязанный объект.

Тоже сообщение выдается при выполнении следующей последовательности действий над коллекцией OrderLines удалили элемент из коллекции-> добавили элемент -> попытка сохранения..

Решение задачи: «Ошибка при удалении и добавлении записи из сущности EF CodeFirst в MS SQL»

textual
Листинг программы
public void DeleteObj(Guid id)
        {
            TestObj obj = context.TestObj 
                .Where(x => x.Id == id)
                .FirstOrDefault();
            if (obj != null)
            {
                context.Entry(obj).State = System.Data.EntityState.Deleted;
                context.SaveChanges();
            }
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.1 из 5
Похожие ответы