所以我正在阅读这本 DDD 书,同时设计一个新系统。在 DDD 书中,他们有一个示例,其中实体具有私有成员,例如 ID 和其他值。
举个例子,我们有一个用户实体,它有 id 和一组它有权参加的课程。
然后在 DDD 风格中,如果我们说在用户实体上,他们会使用 GrantRightTo(Course c) 之类的东西。这一切都很好,因为在该功能中,我现在可以检查任何业务规则,例如用户是否注册了太多课程。聪明的!
另一种选择是任何人都有权收集课程,但控制器需要知道不好的业务规则。
现在首先是 EF 代码的问题,我无法像我的书那样让我的课程集合成为私有/受保护的并且仍然被持久化 (dbcontext) 那么该怎么办?
我当然可以将集合公开,并且仍然有像 GrantRightTo 这样的方法,但是其他开发人员可能会以错误的方式执行此操作,因此并不理想。
该怎么办?