【发布时间】:2011-01-13 22:36:10
【问题描述】:
我的实体框架 POCO 类中映射了多对多关系。在数据库中,它是一个带有复合键的连接表,并且可以很好地生成 POCO 属性。
当我从上下文加载一个实体时,我可以从多对多集合中删除一个项目,并且在我保存更改时更新数据库。
例如:
var item = context.Items.First();
item.OtherItems.Remove(item.OtherItems[0]);
context.SaveChanges();
但是,当分离的对象图从 WCF 返回时,我将其附加到上下文并将其标记为已修改。但更改并未持久化。
例子:
//这发生在silverlight客户端上
item.OtherItems.Remove(item.OtherItems[0]);
//在服务器上
context.Items.Attach(item);
context.ObjectStateManager.ChangeObjectState(item, EntityState.Modified);
context.SaveChanges();
在这种情况下,记录不会从数据库的连接表中删除。有什么想法可以让它发挥作用吗?提前非常感谢。
【问题讨论】:
标签: wcf entity-framework many-to-many poco