我必须在表单中显示一个对象(一个 POCO 类)。
在我的控制器中,我从对象存储库中获取对象数据。
但是在表格中,我还必须显示一些关于对象的额外数据,比如国家名称而不是 countryid、分配的人数(从 1:N 关系中获取)、编辑历史(获取来自另一个表)和位“CanBeCancelled”。
问题是:我应该把这个逻辑放在哪里?
我想出了这些替代方案:
- 存储库本身:创建一个额外的函数来返回这个确切的视图模型
- 转换服务,将类转换为视图模型(它知道从哪里获取数据)
- 控制器:它知道要在视图(模型)中显示哪些数据,因此它应该从不同的存储库中获取所有数据
什么是放置此逻辑的好方法(对于“此逻辑”,我的意思是知道在存储库 A 中获取人数的逻辑,由存储库 B 获取历史记录,由 CountryRepository 和布尔值获取国家名称'CanBeCancelled' 由 StateEngine 服务获取)?