【发布时间】:2020-03-05 00:35:47
【问题描述】:
我有一个 Azure 结构集群,其中包含 .NET core 2.2 微服务。上述服务使用 EF 核心与 Azure SQL 数据库进行通信。此外,结构集群位于负载均衡器后面。
数据库上下文有一个作用域生命周期,并使用依赖注入注入到控制器中。
当服务由同一客户端持续查询时,一切正常,因为负载平衡器保证至少 4 分钟内同一用户将被发送到同一服务实例。但是,当负载均衡器决定将用户发送到不同的实例时,会再次创建数据库上下文(因为生命周期是有范围的,这意味着每个新的 Web 请求都会创建一个上下文)。不幸的是,模型构建过程需要很长时间,因此第一个查询总是比后续查询慢得多(在同一个 Web 请求上)。
问题是,是否有可能以某种方式缓存 EF Core 模型,这样就不必在每次出现上述情况时都重新构建它?
我的意思是,与 EF 类似的过程 - 一次创建 .edmx 文件并在创建上下文时加载。
【问题讨论】:
标签: .net-core entity-framework-core edmx