删除的对象将通过级联(从关联中删除删除的对象)在nhibernate中重新保存
在尝试从表中删除记录时,我不断遇到此错误。插入和更新除删除外的工作细节 以下是我的设置: 映射:删除的对象将通过级联(从关联中删除删除的对象)在nhibernate中重新保存,nhibernate,nhibernate-mapping,cascading-deletes,delete-record,Nhibernate,Nhibernate Mapping,Cascading Deletes,Delete Record,在尝试从表中删除记录时,我不断遇到此错误。插入和更新除删除外的工作细节 以下是我的设置: 映射: HasMany(x => x.Items).AsList().AsBag().LazyLoad().Cascade.AllDeleteOrphan(); 获取方法: IRepositoryWithTypedId<BOD.Entities.Item, Guid> Rep = RepositoryFinder.For<BOD.Entities.Item, Guid&
HasMany(x => x.Items).AsList().AsBag().LazyLoad().Cascade.AllDeleteOrphan();
获取方法:
IRepositoryWithTypedId<BOD.Entities.Item, Guid> Rep = RepositoryFinder.For<BOD.Entities.Item, Guid>();
BOD.Entities.Item tag = Rep.Get(new Guid("0A495241-082F-4314-8B79-000A524FC666"));
Rep.Delete(tag);
这两个仍然会导致错误。有人有什么建议吗?这是因为
标记
包含在某个集合中,您应该将其从该集合中删除以实际删除它。否则,当您持久化收集实体时,将再次保存标记。FYI,请在映射中去掉AsList()
调用,除非您希望将其映射为nhibernate列表(即带有索引列)。AsBag()
调用正在覆盖它,但您不想指定两个不同的集合映射规范。它不应该解决您的问题,只是需要您注意的事项。
Repository().DbContext.CommitTransaction();
Repository().DbContext.CommitChanges();