代码之家  ›  专栏  ›  技术社区  ›  Nate CSS Guy

在展示前多次调用wcf来构建一个viewModel是奇怪还是奇怪?

  •  0
  • Nate CSS Guy  · 技术社区  · 15 年前

    如果我在控制器中需要这样的代码,我是否做错了什么?我应该做些不同的事情吗?

    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 回复  |  直到 15 年前
        1
  •  1
  •   Dan Story    15 年前

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

        2
  •  0
  •   SDReyes    15 年前

    如果我需要的话,我是不是做错了什么? 在控制器中这样的代码?应该 我在做不同的事情?

    你的方法看起来不错。恭喜。

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

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