在 N 层架构中处理非删除实体的最佳实践方法是什么。所讨论的架构有一个服务层和一个存储库层。存储库是唯一可以直接访问数据库的层(嗯,通过 ORM)。目前,存储库层主要处理 CRUD 操作。该层是否应该根据给定状态处理实体的检索?
让我解释一下我们系统中状态的使用。我们想使用状态来删除实体。因此,我们不会删除用户实体,而是将其状态设置为已删除。现在,用户存储库公开了一个 Get 方法。不带任何参数调用 Get 应该返回系统中的所有用户,不管它的状态如何,但是如果我们只想获取活动用户,最好在 Service 层或 Repository 层处理。如果我们要在服务层执行此操作,我们将需要对 Repository Get 方法响应提出一个过滤器。如果我们在 Repository 层这样做,我们会让 Get 获取一个 Status 枚举,因此您可以调用 Get(Status.Active)。处理此类事情的最佳方法是什么?