使用单个Breeze控制器来处理多个EF上下文是否可行或可行?每个上下文都有不同的数据模型。
或者,是否可以让一个Breeze客户端使用两个不同的Breeze控制器?
答案 0 :(得分:4)
两者都有可能。两者都很常见。
通常你会有一个EF-Context-per-controller。这当然是容易的道路(但不是唯一可行的道路!)。
在客户端上,您可以将它们视为不同的“数据服务”。在双上下文的情况下,如下所示:
// Highly condensed, simplified example var fooServiceName = 'api/foo'; var barServiceName = 'api/bar'; var fooManager = new breeze.EntityManager(fooServiceName); var barManager = new breeze.EntityManager(barServiceName); // use each manager in its own workflow
我的假设是你有单独的模型,因为你有不同的工作流程。这个假设通常是成立的,当然也是最简单的方法。
然后,我将客户端应用程序构建为单独的客户端模块,每个模块都有自己的EntityManager
。
我不会进一步推测;如果这符合您的目的或者您还有其他需求,请告诉我们。
顺便说一句,我宁愿控制器本身根本不了解EF上下文。我希望看到它们在支持外部类中是孤立的,以便于测试。但是,关于你问题的本质,你应该没事。