设置一个视图模型需要很多服务层调用这是正确的吗?

时间:2011-01-27 11:52:45

标签: c# asp.net-mvc architecture domain-driven-design

我的架构是:UI项目(MVC),连接到我的域服务层(业务规则等),连接到Repo Layer。

在设置视图模型时,我似乎正在多次调用数据库9通过服务层)来在控制器中设置视图模型(即视图),这是正确的做法......

E.g。我有一个客户端,他们可以成为总公司(复选框),如果他们成为/或者是HeadOffice,他们可以选择添加许多不同的客户。此特定视图将包含:客户端详细信息,可添加的客户端以及作为总部一部分的当前客户端...

对我来说,好像我应该检查域服务层内的每一个并向控制器返回它可以看到的内容,即如果它是一个HeadOffice有x个客户端它可以添加???

1 个答案:

答案 0 :(得分:0)

我对这个问题并不完全确定,但这是我对这个问题的理解......

1)客户记录在所有情况下都包含某些信息,您可以在一次通话中取回客户记录

2)如果客户记录的IsHeadOffice == true,您可能还会选择加载“属于”“总公司客户”的IEnumerable客户记录列表

我真的没有看到两个电话的问题,一个是“get client”方法,一个是“get client for head office user”方法。

您可以在服务层中找到这些内容并返回整个客户端,如果您愿意,可以将所有关联的客户端一次性调用。

如果您尝试将服务与UI绑定,您将编写不必要的复杂方法来返回“完整”数据集。如果您从UI调用50种不同的方法,那可能不是高效的,您可能希望在堆栈中进一步聚合它。