我使用MS SQL Server和C#以及实体框架。
数据层为每个处理Save,Delete,Get等的表都有一个存储库。 然后我有一个业务层,帮助用户界面进行数据事务和错误处理等。
在数据库的一列中,我需要在保存之前进行计算。 我应该覆盖数据层中的Add / Update方法并进行此计算,还是应该放在业务层中。
感谢您的建议。
答案 0 :(得分:3)
在细粒度,尺寸合适的应用程序设计中,遵循标准规范AKA SOA,任何实体都有自己的服务(业务)层和持久层对象。
当用户界面层调用服务时,服务正在接收可以映射到一个或多个分离的数据库实体的简单或复合DTO,允许在服务层中调用其他实体服务,并且不允许您调用其他服务实体持久保存图层对象。
遵循方法:
如果实体A1
中的属性A
的计算基于实体A
的属性,则可能执行持续计算图层。
如果实体A1
中的属性A
的计算基于其他实体属性,那么您必须进行计算在服务层。