Ошибка при удалении записи из нескольких таблиц - PullRequest
0 голосов
/ 15 февраля 2019

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

Объект:

    public partial class ParentTable
{

    public int p_id { get; set; }
    public string p_titl { get; set; }
    public string p_subtitle { get; set; }
    public string p_message { get; set; }
    public Nullable<System.DateTime> p_date { get; set; }


    public virtual ICollection<ChildTable> childtable { get; set; }
}
public partial class ChildTable
{
    public long id { get; set; }
    public int p_id { get; set; }
    public string message { get; set; }


    public virtual ParentTable parenttable { get; set; }
}

Удалить код:

        public ActionResult Delete(int id)
    {            
            var deleteall = _db.ParentTable.Include(p => p.ChildTable).FirstOrDefault(p => p.p_id == id);
            _db.ParentTable.Remove(deleteall);          
            _db.SaveChanges();
             return RedirectToAction("Index");
    }

1 Ответ

0 голосов
/ 15 февраля 2019

Вам необходимо удалить ChildTable пунктов до _db.SaveChanges()

var childItems = _db.ChildTable.Where(c => c.p_id == id);
_db.ChildTable.RemoveRange(childItems );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...