You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core 7中如何在Program.cs访问Entity Framework Core编译模型实例?

在ASP.NET Core 7.0中使用EF Core编译模型配置DbContextPool

要在Program.cs中正确配置使用编译模型的DbContextPool,按以下步骤操作:

1. 确认已生成编译模型

先通过EF Core CLI命令生成编译模型,示例命令:

dotnet ef dbcontext optimize --output-dir Models/CompiledModels

执行后会生成对应上下文的编译模型类(默认命名为[你的上下文名]Model,比如CondoDBContextModel),该类包含静态的Instance属性,指向编译好的IModel实例。

2. 修改Program.cs中的DbContext配置

在原有AddDbContextPool配置中,添加UseModel方法传入编译模型实例,修改后的代码如下:

.AddDbContextPool<CondoDBContext>(options => 
    options.UseSqlServer(connection)
           .UseModel(CondoDBContextModel.Instance), 
    int.Parse(sqlpool))

注意事项

  • 确保在Program.cs中引用编译模型所在的命名空间(比如生成在Models/CompiledModels下,需添加using YourProjectName.Models.CompiledModels;)
  • 当实体类、DbContext配置发生变更时,必须重新执行dotnet ef dbcontext optimize命令更新编译模型,否则会出现模型不匹配错误
  • 如果生成编译模型时自定义了类名,替换代码中的CondoDBContextModel为实际类名

内容的提问来源于stack exchange,提问作者Guy Gallant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 16:25:22