删除的对象将在nhibernate中通过级联(从关联中删除已删除的对象)重新保存

时间:2011-05-16 15:59:07

标签: nhibernate nhibernate-mapping cascading-deletes delete-record

我在尝试从表中删除记录时遇到此错误。除了删除之外,插入和更新工作正常。

这是我的设置:

映射:

 HasMany(x => x.Items).AsList().AsBag().LazyLoad().Cascade.AllDeleteOrphan();   

GetMethod:

  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); 

我也尝试过使用:

 Repository().DbContext.CommitTransaction();
 Repository().DbContext.CommitChanges();

这两个仍会导致错误。有没有人有任何建议?

1 个答案:

答案 0 :(得分:3)

这是因为tag包含在某个集合中,您应该从该集合中删除它以实际删除它。否则,当您持久收集实体时,标签将再次保存。