我試圖從實體框架中的集合中刪除對象,但不幸的是我的代碼失敗。如果你能看一看,並且讓我知道,如果你能弄清楚我做錯了什麼,我將不勝感激。我的目標如下:刪除()不適用於實體框架中的多對多關係
- 人< - >徽章(許多一對多關係)
- 徽章< - > BadgeRequirement(一個一對多的關係)
- 人包含ICollection的徽章的
- 徽章包含人的ICollection的
- BadgeRequirement包含徽章外鍵
添加和編輯條目工作得很好。
然而,當我嘗試使用下面的代碼一個人刪除徽章,這是行不通的:
Postback event handler on example.aspx
****The person object has been loaded as part of the load event on the page****
Badge badge = BadgeHelper.getBadge(badgeID);
if (command == "Delete")
{
PersonHelper.removeBadgeFromPerson(badge, person);
}
Delete method on PersonHelper class (wrapper for all processing)
person.Badges.Remove(badge);
DbContext.SaveChanges();
的刪除(徽章)返回false,併爲我使用,我不能資料這個SQL Compact 4.0
在此先感謝您的幫助!
可以調試你的代碼,並檢查了'person'是'Badges'集合中包含的徽章,你正試圖刪除?它是否包含任何徽章? – 2011-04-16 19:47:36
嗨拉迪斯拉夫,我可以驗證person對象包含一個完全加載的徽章集合。在我的「Get」查詢中,我使用person.include(「Badges」)來確保集合被加載並相應傳遞。但是,當我嘗試從集合中刪除相關徽章時,不會執行刪除操作。相反,刪除(徽章)返回false。不知道這是否有幫助。謝謝 – Chris 2011-04-22 12:20:28