这个问题是由 Marcel 在我们的 IdeaBlade 论坛上发布的。我在这里重新发布问题和答案,因为我认为它对 Breeze Stack Overflow 社区有用。
最佳答案
你不应该为了这么简单的事情下载源代码并修改它。而 现在您不必 。
我们已将 EFContextProvider
的简单更新推送到 GitHub。此更改将出现在下一个 Breeze Runtime 版本 (> 0.81.2) 中。
其中 EFContextProvider
用于创建“T”(您的 ObjectContext/DbContext),如下所示:
_context = 新 T();
它现在调用一个虚方法,T CreateContext()
,它的默认实现是:
protected 虚拟 T CreateContext() {
返回新的 T();
}
在您的 EFContextProvider
子类中覆盖并替换它,您将能够按照您喜欢的方式制作“T”类型的上下文。
注意:基础 EFContextProvider
仍然会做一些创建后的配置 以确保它的行为符合我们的预期;我们不希望上下文做任何延迟加载或创建代理。
因此,如果 'T' 是 ObjectContext
,则提供程序将执行以下操作:
objCtx.ContextOptions.LazyLoadingEnabled = false;
如果 'T' 是 DbContext
它会这样做:
dbCtx.Configuration.ProxyCreationEnabled = false;
dbCtx.Configuration.LazyLoadingEnabled = false;
关于entity-framework - 将动态连接字符串与 Breeze EFContextProvider 一起使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13616832/