c# - 领域驱动设计 - 逻辑删除

标签 c# .net nhibernate domain-driven-design ddd-repositories

所以,我构建了一个很好的域模型。存储库处理数据访问等等。出现了一个新要求,表明需要通过删除来记录原因。到目前为止,删除相当简单 => Entity.Children.Remove(child)。当我的 ORM 工具处理状态管理时,没有发生内部更改跟踪。但是,我不确定如何处理这个问题。

1) 我可以在父实体中保留已删除的子集合,并将更改跟踪从 nHibernate 中提取出来并自行处理。

2) ??????

最佳答案

好吧,这听起来很疯狂,我将再试一次——尽管我可能会因为 nHibernate 使用不当而被打屁股。在删除之前,为什么不选择要删除的子项(您的 id 已经正确?)并转换为您将用于将删除记录到表中的任何实体。将原因添加到实体并保存它们 - 然后继续删除。最好的部分是,您可以使用通用实体(即“auditInfo”)作为转换结果,并且您可以在事务中执行此操作,以便在出现故障时可以回滚所有内容!好吧,也许很疯狂但很有创意吧?

关于c# - 领域驱动设计 - 逻辑删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/183524/

相关文章:

c# - 循环图像数组

c# - C# 中的 null 速记?

c# - .NET Entity Framework 与复制的 SQL 服务器的使用

.net - 如何在崩溃时创建进程小型转储而不在 Windows 7 上显式运行 AdPlus?

.net - NuGet 恢复包但缺少 DLL

c# - 将 HQL 与标准混合

c# - 使用 NHibernate CreateSQLQuery 方法执行 UPDATE 并返回刚刚更新的记录?

c# - mongodb 的 SQL CLR 抛出 'MongoDB.Bson.Serialization.BsonSerializer' 异常

c# - 在密码强度验证器中检查字符时,正则表达式似乎无法识别和计数

c# - ninject 将 iunitofwork 注入(inject)存储库范围的属性