【发布时间】:2014-04-09 23:27:21
【问题描述】:
我正在开发一个应用程序,其中绝大多数功能是数据库表和视图之间的一对一映射。到目前为止,它是一个纯粹的 CRUD 应用程序。
但是,在少数情况下会涉及到一些业务规则。例如,如果用户正在创建“受限测试”,则需要输入公司信息,但如果不是“受限测试”,则公司信息是可选的。
在这些场景中是否可以让视图直接使用数据库对象而无需中间业务对象,并且只在涉及业务规则的情况下实现业务对象?
作为一个附带问题,我使用的 ORM 框架不允许我在实体字段上实现 getter/setter 代码。因此,这些实体对象上的所有字段本质上都是公共的,可以随意更改。这是否足以为每个实体类创建一个“业务对象”来保护 PK 等不变量?
编辑:
我确实找到了 Mark Seemann 的一篇非常有用的帖子,它似乎很好地回答了我大约一半的问题。 http://blog.ploeh.dk/2012/02/09/IsLayeringWorththeMapping/
【问题讨论】:
标签: orm architecture crud business-logic-layer