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
相关产品推荐
相关产品推荐

