我正在使用 Linq 2 Sql 敲出一个快速定制的 CMS。
我有一个与自身关联的表,因此任何子菜单都映射到同一个表中的任何父菜单,但我在插入第一个父菜单时遇到问题。
该表看起来有点像这样:
CMSMenu
CMSMenuID
ParentCMSMenuID
Name
Link
与协会
CMSMenu.CMSMenuID -> CMSMenu.ParentCMSMenuID
在以前版本的数据库/代码中,我只需添加一些代码,例如:
itm = new CMSMenu();
itm.ParentCMSMenuID = 0;
rep.CMSMenus.InsertOnSubmit(itm);
但是由于该数据库是使用所有外键自动创建的,因此此代码会导致异常:
INSERT 语句与 FOREIGN KEY SAME TABLE 约束“CMSMenu_CMSMenu”冲突。冲突发生在数据库“sp.ackahs”、表“dbo.CMSMenu”、列“CMSMenuID”中。该语句已终止。
如何插入顶级菜单(即没有父级)?
因为它没有父母所以我不能添加:
itm.MyParentCMSMenu=*existing cmsmenu item*;
就像我可以使用子菜单一样,我也不能添加:
itm.MyParentCMSMenu=null;
欢迎任何想法。
谢谢托比