【发布时间】:2016-01-20 08:00:34
【问题描述】:
目前我们正在使用 Breeze.js 和 Angular 来开发我们的应用程序。由于一些持续存在的遗留问题,我们有两个数据库(“Kenya”和“Rwanda”)目前无法合并,但具有相同的架构和元数据。大多数时候,客户端知道要访问哪个数据库并通过 .withParameters() 函数或 .saveOptions() 函数传递请求。有时我们想从两个数据库请求相同的查询(例如,如果我们请求所有可用国家的列表),我们使用客户端上的 EntityManager 包装器来管理它并从每个数据库请求相同的查询。这是通过自定义 EFContextProvider 实现的,它使用返回的数据来确定适当的数据库并在 CreateContext() 中创建适当的上下文。
更复杂的是,在某些情况下,一个或另一个数据库将不存在(这些是通过过滤复制创建的本地部署),但客户端不会知道这一点。因此,在查询所有国家的列表时,它会发出两个请求,其中一个会因为上下文无法正确实例化而导致失败。
这很容易在服务器上检测到。我想做的是检测请求的上下文是否可用,如果没有,则返回 200 响应和一个空集。
我可以在 Breeze DBContextProvider CreateContext() 方法中检测到这一点,但无法弄清楚如何使请求优雅地回退到空集响应。
谢谢
【问题讨论】:
标签: breeze