c# - 将更改保存到数据库时出现外键约束错误
问题描述
在我的应用程序中使用 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);
}
有关错误,请参见上面的链接。
解决方案
确保书籍对象中的值类型具有正确的数据或空值。
推荐阅读
- python - RuntimeError: QPlainTextEdit 类型的包装 C/C++ 对象已被删除
- cassandra - Cassandra vs RDBMS:聚类列
- python - 使用“in”检查 Pandas 系列中是否存在值
- node.js - 在 Nodejs 中执行命令并将输出附加到控制台
- javascript - 将参数传递给 Firebase Cloud Functions
- sql - 为什么 hasura 控制台不将数据作为我的自定义 sql 函数返回?
- javascript - firebase 托管的反应应用程序返回“您需要启用 JavaScript 才能运行此应用程序”
- pandas - 如何将 DataFrame 列转换为浮动并永久保持这种方式
- ms-access - MS-Access 粘贴期间的字段/记录丢失
- swift - Swift - 结合多种折扣类型