这个问题是由 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/

10-11 06:56