0

Функция удаления из БД

public bool DeleteArticle(NewArticlesViewModel news)
    {
        bool IsDeleted=false;
        try
        {
            var article = db.Articles.Find(news.Id);
            db.Articles.Remove(article);
            var NoOfRowsAffected =  db.SaveChanges();
            IsDeleted = NoOfRowsAffected > 0;
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK);
    }

    return IsDeleted;
}

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

System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта. в Microsoft.CodeAnalysis.Editor.Implementation.IntelliSense.AsyncCompletion.CompletionSource.<GetDescriptionAsync>d__27.MoveNext() --- Конец трассировка стека из предыдущего расположения, где возникло исключение --- в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) в Microsoft.VisualStudio.Text.Utilities.GuardedOperations.<CallExtensionPointAsync>d__36`1.MoveNext() --- Конец трассировка стека из предыдущего расположения, где возникло исключение --- в Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.GetClrWatsonExceptionInfo(Exception exceptionObject)
  • Для начала перестаньте игнорировать старые вопросы, отвечайте на вопросы, которые вам задают, доводите все до конца, не бросайте их. Далее, если у вас падает ошибка, то надо показывать, где, если не знаете где - делайте отладку, проходитесь шаг за шагом по коду, ставьте брейкпоинты, делайте логгирование. Вот вы дали нам участок кода и ошибку, где говорится, что объект == null, что в предоставленном коде может быть null? Да все что угодно, ну и, будем гадать, или всеж вы нам скажете, что именно у вас NULL? А если скажете, то может и сами поймете почему? – EvgeniyZ May 26 '21 at 19:17

1 Answers1

0
var article = db.Articles.FirstOrDefault(f => f.Id == news.Id);
if (article != null)
   db.Articles.Remove(article);
else
   throw null;
var NoOfRowsAffected =  db.SaveChanges();
Blackmeser
  • 2,033