我的角度应用程序使用Breeze并在datacontext服务中封装breeze调用。如何在不同的EntityManagers中使用此服务?我想在这种情况下我需要放弃使用datacontext作为角度服务,因为它似乎需要维护状态。
其他人如何处理这件事?我真的很讨厌无法使用角度服务,但我也想重新使用带有不同EntityManager的datacontext。
答案 0 :(得分:0)
我不完全了解您提出具体答案的要求。但我不会那么快就放弃“datacontext”抽象。
此问题似乎与您的other question here有关,而exporting似乎是“沙箱”案例。我会在那里拿起线程。
当我需要与多个服务进行通信时,我需要多个EntityManagers
,每个服务都有自己的实体模型。当发生这种情况时,我通常会为每个服务提供不同的工作流程,在这种情况下,我应该为每个工作流程分别设置“datacontexts”。问题“已解决”: - )
有时我会想要两个EntityManagers
用于同一服务,因为我是“沙盒”。当我需要同一个名义实体的两个副本时,我“沙盒”:
我也可以使用单独的“datacontexts”实现这种情况
每个datacontext都有自己的EntityManager
实例。每个实例大多以相同的方式配置,并且通常具有相同的元数据。
我可能会创建一个SandboxContextFactory
服务来创建专用datacontext的新实例。每个此类SandboxContext
都有自己的EntityManager
。
我倾向于编写EntityManagerProvider
(EMP)服务来创建EntityManager
并将其注入datacontext服务。此EMP可以创建和协调通常配置的“主”EntityManager
的多个实例。
EMP可能:
EntityManager
。fetchMetadata
调用)var childEm = masterEm.createEmptyCopy();
希望这些建筑推测能够激发出适合您的解决方案。如果您需要按照这些方式开发应用程序的帮助,可以考虑使用{{3}}。