在EF 6中,要从集合中删除实体而不实际获取集合,我使用:
manager.ChangeRelationshipState(entity, wrappedIdOfRelatedEntity, e => e.Collection, EntityState.Deleted);
适用于M:N关系。但是在1:N的情况下,它会抛出以下错误:
使用外键值定义的关系不支持ChangeRelationshipState方法。
为了澄清,我不想获取该集合,因为它可能非常庞大,而且我不想获取应该删除的实体。
我拥有'包含'的实体的密钥(id)。应删除的实体的集合和键(ID)。
任何提示,如何正确地做到这一点?
注意:只需将包装的实体键添加到集合即可添加。但删除导致问题。
答案 0 :(得分:0)
您是否在实体上使用行版本控制/时间戳?如果这样做,EF需要版本,因为它正在发送包含要删除的实体的id和版本的更新语句。
如果您未在实体上使用行版本控制/时间戳,则可以使用DbContext API执行以下操作,但需要使用代理并更改检测。
如果您在实体上使用行版本控制/时间戳,则可以使用上述步骤,但在步骤2中,您需要同时设置版本和ID。