在应用程序或业务层中转换存储库数据?

时间:2017-01-24 17:55:33

标签: c# repository-pattern

我在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()并已在应用程序层的处置中格式化数据

1 个答案:

答案 0 :(得分:1)

当然,您希望在应用程序层中执行TransformPeroidsToDays(GetPeriods)。数据层应仅关注对原始数据的创建,检索,更新和删除(CRUD操作)。

将数据转换为其他内容是属于业务逻辑层的“业务逻辑”,即您所谓的“应用程序”层。我建议将它称为前者或应用程序层之外的其他东西,因为它通常不被称为; “申请”一词通常指整个......井......申请。