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