首页 > 解决方案 > 将更改保存到数据库时出现外键约束错误

问题描述

在我的应用程序中使用 create 函数时出现此错误:INSERT 语句与 FOREIGN KEY 约束 'PK_dbo.Books_dbo_Genres_GenreId' 冲突

我试图更改 db.savechanges 代码,但没有奏效。

这是我的项目代码的链接:

 // POST: Book/Create
        // To protect from overposting attacks, please enable the specific properties you want to bind to, for 
        // more details see https://go.microsoft.com/fwlink/?LinkId=317598.
        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Create(BookViewModel bookVM)
        {
            var book = new Book
            {
                Author = bookVM.Book.Author,
                Availablity = bookVM.Book.Availablity,
                DateAdded = bookVM.Book.DateAdded,
                Description = bookVM.Book.Description,
                Genre= bookVM.Book.Genre,
                ImageUrl = bookVM.Book.ImageUrl,
                ISBN = bookVM.Book.ISBN,
                Pages = bookVM.Book.Pages,
                Currency = bookVM.Book.Currency,
                ProductDimensions = bookVM.Book.ProductDimensions,
                PublicationDate = bookVM.Book.PublicationDate,
                Title = bookVM.Book.Title
            };

            if (ModelState.IsValid)
            {
                db.Books.Add(book);
                db.SaveChanges();
                return RedirectToAction("Index");
            }

            var model = new BookViewModel
            {
                Book = book,
                Genres = db.Genres.ToList()
            };

            bookVM.Genres = db.Genres.ToList();
            return View(bookVM);
        }

有关错误,请参见上面的链接。

标签: c#.net

解决方案


确保书籍对象中的值类型具有正确的数据或空值。


推荐阅读