在呈现之前进行多个WCF调用以构建ViewModel是奇怪还是奇怪?

时间:2010-04-02 18:56:07

标签: .net asp.net-mvc wcf linq-to-sql

如果我在Controller中需要这样的代码,我是否做错了?我应该采取不同的做法吗?

public ActionResult Details(int id)
{
    var svc = new ServiceClient();
    var model = new MyViewModel();
    model.ObjectA = svc.GetObjectA(id);
    model.ObjectB = svc.GetObjectB(id);
    model.ObjectC = svc.GetObjectC(id);
    return View(model);
}

我问的原因是因为我在后端有Linq-To-Sql和一个WCF服务,它通过一组DTO来公开功能,这些DTO不是Linq-To-Sql生成的类,因此不会拥有父/子属性;但在详细视图中,我希望看到一些父/子数据。

2 个答案:

答案 0 :(得分:1)

您可以考虑使用单个工厂方法替换多个方法,该方法将生成预先填充的对象并将其返回。 WCF调用有很大的开销,如果可能的话,你应该尽量减少它们。

答案 1 :(得分:0)

  

如果我需要,我做错了什么   在Controller中这样的代码?应该   我的做法有所不同?

你看起来很好看。祝贺。

  

但在详细视图中,我想   查看一些父/子数据。

您可以在WCF服务中公开一个专门的方法,为您带来一组基于ObjectB的ObjectA(反之亦然)