我有一点问题,我不确定如何解决它。我的模型组件包含大约200个不同的业务对象(订单,客户,产品等)。
当有人想要获取订单时,我不想返回整个对象图。相反,我想简单地返回对象和延迟加载(甚至异步加载)其他部分。这似乎会导致许多“获取(对象名称)”服务:
我不想创建200种不同的方法,每种方法对应一次Get操作。我意识到我可以做类似的事情:GetObject(string type, int id)
,然后以某种方式使用反射来获取适当的对象,但我认为这更糟糕(可能)。
相反,如果我使用T4模板自动完成创建每种不同服务的工作,那会更好......但它仍然让我担心一件事...... 性能
暴露200多种不同的服务是不是很糟糕(每个对象一个)?
答案 0 :(得分:4)
根据我的经验,WCF +实体框架+延迟加载+深度对象图+性能要求=潜在的大问题。
没有令人惊奇的银弹可以解决所有问题,我最终得到了以下结论:
private
。没有更多的对象自动序列化到客户端GetXXXX/GetXXXByYYY
方法。甚至GetXXXByYYYWithZZZZWithWWWW
其中ZZZZ
和WWWW
是预先加载的属性的名称。是的,可能有很多方法,但只有在应用程序的客户端方面实际需要时才构建它们,并且您知道自己在做什么。这极大地有助于获得良好的表现。暴露200多种不同的服务是不好的(每种服务一个 对象)?
单个服务中有200多个不同的操作(我想)。如果您的客户端实际上需要访问所有服务器端实体,那么是,200多个操作就可以了,这里没有任何魔力。