Jay 正在谈论 .NET 中的服务器端。也许您在谈论客户端 JavaScript?如果是这样,请继续阅读;如果不是......坚持杰的回答。
在我们的客户端 JavaScript 应用程序中,我们经常编写一个模块,将 ViewModel 与 Breeze 隔离开来EntityManager
。在一个示例中,这样的模块可能称为“dataservice.js”;它可以在另一个示例中称为“datacontext.js”。概念是相同的:您尝试封装数据访问细节(其中涉及 BreezeJS 组件,例如EntityManager
),以便 ViewModel 使用更简单、更有意的接口。
这些 JS 模块不是 Breeze 的一部分。它们只是构建应用程序的推荐方法。
您可以根据需要编写尽可能多的这些“数据上下文”。每个都可以有自己的EntityManager
实例,该实例缓存自己的一组实体,如果您愿意,您可以将该缓存视为“较小的 [内存] 数据库”。这种针对不同工作流程的“上下文化”在商业应用程序中非常常见。例如,您会看到我们谈论“沙盒编辑器”;每个沙箱都是它自己的“上下文”。
您经常需要将实体从一个“上下文”复制到另一个(而不是往返于服务器)。EntityManager.exportEntities
使用andEntityManager.importEntities
方法很容易做到这一点。您可以在DocCode 示例中找到示例。