2012-12-28 44 views
-2

我有Windows Phone應用程序與表A和表B有主 - 外鍵關係。我需要從表A中刪除一個條目。我該怎麼做?Linq:刪除與主 - 外鍵關係的表項

表A包含Shape類型的對象並且具有ShapeColor字段。表B具有ShapeColor類型的對象。

當我嘗試使用DeleteOnSubmit隨後的SubmitChanges從表A中刪除形狀拋出一個異常

「{」的主鍵值無法刪除,因爲這個 鍵引用仍然存在。 [外鍵約束名稱= ShapeColor_Shape]「}

+0

莫非你顯示執行刪除的代碼?必須觸發刪除父項。是否監視發出的SQL?在'tableB'之前還是之後刪除'tableA'? –

回答

1

您可以使用:

context.DeleteOnSubmit(EntityA.ReferenceToTableB) 
context.DeleteOnSubmit(EntityA) 

第一刪除的關係,然後刪除實體,並提交更改數據庫

+0

我不知道我是否理解答案。如果我在Shapes中有Shape1和Shape2表,則都在ShapeColor tabl中引用ColorRed即我想從Shapes表中只刪除Shape1並保持Shape2不變。 – user1744147

+0

聽起來像shape2與shape1相關,在這種情況下,您必須刪除兩個實體,或將shape2的指針重新映射到shape1。在你的場景中,你只需要刪除shape1,但是你得到的錯誤表明否則。你有一個主鍵引用的東西需要指向別的東西,或外鍵實體需要刪除.... –