我正在进行我的第一个领域驱动设计项目,我认为我理解了实体、数据访问对象及其关系的基本角色。我有一个基本的验证实现,它将每个验证规则与其关联的实体一起存储。对于仅适用于当前实体的规则,这很好运作,但当需要其他数据时就会出现问题。例如,如果我有一个限制条件,即用户名必须唯一,当存在具有当前名称的用户时,我希望 IsValid() 调用返回 false。
然而,我没有找到任何简洁的方法来保留此验证规则在实体本身上。我希望在实体上有一个名为 IsNameUnique 的函数,但大多数解决方案都要求我注入一个用户数据访问对象。这个逻辑应该在外部服务中吗?如果是这样,如何仍然将逻辑保留在实体本身中?还是这应该超出用户实体之外的东西?
谢谢!