我试图从实体框架中的集合中删除对象,但不幸的是我的代码失败。如果你能看一看,并且让我知道,如果你能弄清楚我做错了什么,我将不胜感激。我的目标如下:删除()不适用于实体框架中的多对多关系
- 人< - >徽章(许多一对多关系)
- 徽章< - > 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