EntityFramework 核心 2.1:配置 DbContext 后访问和更改选项?

EntityFramework Core 2.1: Access and change options after configuring DbContext?

在 EntityFramework Core 中,您可以使用 DbContextOptionsBuilder 添加不同的选项。

是否可以访问为 DbContext 之后设置的选项?

在我的例子中,我想知道代理延迟加载是否被激活(该功能是使用 Microsoft.EntityFrameworkCore.Proxies 包添加的)。

此外,在创建和配置 DbContext 之后是否可以更改这些配置选项?

在深入研究 EFCore 2.1 的当前代码后,我发现了一些东西。

如果您在 DbContext 中保留对 DbContextOptionsBuilder 的引用,您可以访问扩展和相关值。示例:

context.OptionsBuilder.Options.FindExtension<ProxiesOptionsExtension>()?.UseLazyLoadingProxies;

但是 EFCore 团队不推荐。使用 ProxiesOptionsExtension 的评论如下:

This API supports the Entity Framework Core infrastructure and is not intended to be used directly from your code. This API may change or be removed in future releases.

注意这一点。

我实现了它,但我需要几天时间才能试用它并确定它能像我预期的那样工作。 (我必须为我的场景添加很多额外的东西。)

我会及时通知你。