所以,我构建了一个很好的域模型。存储库处理数据访问等等。出现了一个新要求,表明需要通过删除来记录原因。到目前为止,删除相当简单 => Entity.Children.Remove(child)。当我的 ORM 工具处理状态管理时,没有发生内部更改跟踪。但是,我不确定如何处理这个问题。
1) 我可以在父实体中保留已删除的子集合,并将更改跟踪从 nHibernate 中提取出来并自行处理。
2) ??????
最佳答案
好吧,这听起来很疯狂,我将再试一次——尽管我可能会因为 nHibernate 使用不当而被打屁股。在删除之前,为什么不选择要删除的子项(您的 id 已经正确?)并转换为您将用于将删除记录到表中的任何实体。将原因添加到实体并保存它们 - 然后继续删除。最好的部分是,您可以使用通用实体(即“auditInfo”)作为转换结果,并且您可以在事务中执行此操作,以便在出现故障时可以回滚所有内容!好吧,也许很疯狂但很有创意吧?
关于c# - 领域驱动设计 - 逻辑删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/183524/