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;
どんな考えでも大歓迎です。
ありがとうトビー