如何使用Breeze与多个实体框架上下文

时间:2013-03-27 14:39:15

标签: breeze

使用单个Breeze控制器来处理多个EF上下文是否可行或可行?每个上下文都有不同的数据模型。

或者,是否可以让一个Breeze客户端使用两个不同的Breeze控制器?

1 个答案:

答案 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上下文。我希望看到它们在支持外部类中是孤立的,以便于测试。但是,关于你问题的本质,你应该没事。