我正在使用Linq 2 Sql敲出一個快速定製的CMS。Linq to Sql插入衝突「外鍵同一表約束」錯誤
我有一個關聯到自己的表,以便任何兒童菜單都映射到同一個表內的任何父菜單,但我有問題插入第一個父。
表看起來有點像這樣:
CMSMenu
CMSMenuID
ParentCMSMenuID
Name
Link
隨着
CMSMenu.CMSMenuID -> CMSMenu.ParentCMSMenuID
協會在以前版本的數據庫/碼的我只想補充像一些代碼:
itm = new CMSMenu();
itm.ParentCMSMenuID = 0;
rep.CMSMenus.InsertOnSubmit(itm);
但由於此數據庫是使用所有外鍵自動創建的,因此此代碼會導致一個excep重刑:
INSERT語句衝突與外鍵相同的表 約束「CMSMenu_CMSMenu」。衝突發生在數據庫 「sp.ackahs」,表「dbo.CMSMenu」,列'CMSMenuID'中。陳述 已被終止。
如何插入頂級菜單(即沒有父級)?
,因爲它不具有父,所以我不能添加:
itm.MyParentCMSMenu=*existing cmsmenu item*;
,因爲我可以用一個孩子的菜單,也沒有我可以添加:
itm.MyParentCMSMenu=null;
任何想法歡迎。
感謝 託比
您可以將MyParentCMSMenu設置爲SQL中的可空列嗎? – GrandMasterFlush
是的....我覺得有點傻,我期待這是因爲CMSMenuID不會爲空並且ParentCMSMenuID會是關聯中的錯誤。感謝那。 – TheMightyBush