【C# - Entity Framework 】The INSERT statement conflicted

 The INSERT statement conflicted with the FOREIGN KEYconstraint "FK_dbo.Qlogs_dbo.Categories_CategoryId". The conflictoccurred in database "MvcQlog", table "dbo.Categories",column 'CategoryId'.The statement has been terminated.

说明:执行当前Web请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关错误以及代码中导致的出处的详细信息。

异常详细信息:System.Data.SqlClient.SqlExceotion:The INSERT statement conflicted with the FOREIGN KEY constraint “FK_dbo.Qlogs_dbo.Categories_CategoryId”.The conflict occurred in database “MvcQlog”,table “dbo.Categories”,column “CategoryId”.The statement has been terminated.

源错误:

行 56 :			// qlog.CategoryId = 1;
行 57 :			db.Qlogs.Add(qlog);
行 58 :			db.SaveChanges();
行 59 :			return RedirectToAction("Index");
行 60 :		}
源文件:e:\CSharp\EF\MvcQlog\Controllers\HomeController.cs 行:58


问题:qlog中有个Categories表结构是NULL,且qlog的外键是Categories的主键

解决方案:qlog的Category初始化一个对象如:

public ActionResult Create(Qlog qlog)
{
	if (ModelState.IsValid)
	{
		qlog.Category  = new Category();
		qlog.CategoryId = 1;
		db.Qlogs.Add(qlog);
		db.SaveChanges();
		return RedirectToAction("Index");
	}
	return View(qlog);
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值