我在c#中使用了包含api,应用程序,域和数据层的洋葱架构的存储库patern。
我注意到在应用层中,需要从数据层接收的数据格式略有不同。例如,应用层期望来自数据层的数据,例如
GetPeriods()
2017-01-01 2017-01-31 50
2017-02-01 2017-02-28 70
etc
但是在应用层的部分,我还需要以单日列表格式获取此数据,例如
GetPeriodsAsDays()
2017-01-01 50
2017-01-02 50
etc
我想确保我理解了存储库模式和洋葱架构,我的问题是我应该
a)从数据层中重新获取数据后,在应用程序层中执行TransformPeroidsToDays(GetPeriods)
或
b)在数据层中执行GetPeriodsAsDays()并已在应用程序层的处置中格式化数据
答案 0 :(得分:1)
当然,您希望在应用程序层中执行TransformPeroidsToDays(GetPeriods)
。数据层应仅关注对原始数据的创建,检索,更新和删除(CRUD操作)。
将数据转换为其他内容是属于业务逻辑层的“业务逻辑”,即您所谓的“应用程序”层。我建议将它称为前者或应用程序层之外的其他东西,因为它通常不被称为; “申请”一词通常指整个......井......申请。