我有兩個應該是相關的表。MVC:INSERT語句與FOREIGN KEY約束衝突
表和Coloums規格
主鍵表
產品分類
ProductCategoryID
外鍵表
SubProductCategory2 ProductCategoryID
在共ntroller我有以下幾種方法創建子類時...
public ActionResult Create()
{
ViewBag.ProductCategory = db.ProductCategories.OrderBy(p =>
p.ProductCategoryID).ToList();
ViewBag.SubProductCategory2 = db.SubProductCategory2.OrderBy(a =>
a.ProductCategoryID).ToList();
var PC2 = new SubProductCategory2();
return View(PC2);
}
public ActionResult Create(SubProductCategory2 Createsubcat2,
FormCollection values)
{
if (ModelState.IsValid)
{
db.AddToSubProductCategory2(Createsubcat2);
db.SaveChanges();
//error pointing here and the full error message I am getting is...
/*error: System.Data.SqlClient.SqlException:
* The INSERT statement conflicted with the FOREIGN KEY constraint
* "FK_SubProductCategory2_ProductCategory". The conflict occurred in
* database "MyHouseDB", table "dbo.ProductCategory", column
* 'ProductCategoryID'. The statement has been terminated.*/
return RedirectToAction("/");
}
ViewBag.ProductCategory = db.ProductCategories.OrderBy(p =>
p.ProductCategoryID).ToList();
ViewBag.SubProductCategory2 = db.SubProductCategory2.OrderBy(a =>
a.ProductCategoryID).ToList();
return View(Createsubcat2);
}
ViewBag.ProductCategory = db.ProductCategories.OrderBy(p =>
p.ProductCategoryID).ToList();
ViewBag.SubProductCategory2 = db.SubProductCategory2.OrderBy(a =>
a.ProductCategoryID).ToList();
return View(Createsubcat2);
在我有以下代碼的意見
...
<div class="editor-label">
@Html.LabelForModel()
</div>
<div class="editor-field">
@Html.DropDownList("CategoryName", new
SelectList((System.Collections.IEnumerable)ViewData["ProductCategory"],
"ProductCategoryID", "CategoryName"))
@Html.ValidationMessageFor(model => model.ProductCategory.CategoryName)
一些能告訴我該怎麼解決INSERT語句與FOREIGN KEY約束錯誤消息衝突。糾正我,如果我錯了,我有不正確地創建兩個表之間的關係或其他問題在哪裏?提前致謝。
嚴格來說2意味着1 ...這裏的關係意味着「每個SubProductCategory屬於一個ProductCategory」。 因此,如果不設置有效的productCategoryID,則無法創建SubProductCategory。這意味着ProductCategory必須已經存在於表中,所以您必須先創建它。 – Ben
是ProductCategory已經退出下拉列表中顯示的內容。所以我在創建子類別時詢問的問題是爲什麼從下拉菜單中選擇值時數據不會被保存? – DiscoDude