我们有一个大型应用程序,允许用户在应用程序中的不同模块之间切换。每个模块都需要能够单独保存,因此每个模块都有自己的EntityManager。
但是,我们希望在整个应用程序中使用一些查找表。如果我们在应用程序级别加载查找表,使用不同的EntityManager,那么它们在模块中就不是很有用了。
例如,如果我想在应用程序级别加载“国家/地区”查找表,那么我就无法做到这样简单:
Person.Country = lookupDataContext.getCountry('Norway')
如果Person在模块的EntityManager中。我会得到类似的东西:
“实体无法附加到另一个EntityManager中的实体。必须首先分离这两个实体中的一个。”
我是否正确理解BreezeJS?如果是这样,这是否意味着我需要在每个模块的EntityManager中进行国家查找?这似乎非常有限。
答案 0 :(得分:0)
我认为此问题与your other question有关多个EntityManagers
有关。查看我的一般想法,其中涵盖了您在此处描述的场景。
稍微具体一点:
EntityManager
中的相关实体;这就是错误信息告诉你的内容。现在,每个沙箱datacontext都可以使用lookupDataContext
方法,而不是sandboxContext.lookups.countries
,从适当的沙箱管理器中提供适当的实体。
这是限制吗?只要
,我认为它不是那么糟糕您应该能够实现从服务器加载查找一次并在主管理器中集中管理它们的目标。
这种方法在过去十年中在很多应用中都非常成功(显然是在Breeze之前)。
HTH。