entity-framework - 使用 NInject 时如何配置 EntityFrameworkCore 的 DbContext
问题描述
在 .net 核心启动类的 ConfigureServices 中,您可以按如下方式配置 dbcontext。
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<DotNetCoreT1DbContext>(options => options.UseSqlServer(_configuration.GetConnectionString("DefaultConnection")));
services.AddMvc();
}
如果我使用 NInject 或者可能是 Autofac,我该如何配置?
使用 NInject,我尝试了以下方法。
kernel.Bind<DotNetCoreT1DbContext>().ToMethod(m => new DotNetCoreT1DbContext(GetDbContextOptionsForCurrentRequest()));
GetDbContextOptionsForCurrentRequest 定义如下。
private DbContextOptions GetDbContextOptionsForCurrentRequest()
{
var options = new DbContextOptions();
return options;
}
问题是我无法更新 DbContextOptions ,因此上述方法不起作用。它不是公共演员。
如何使用 NInject 或 Autofac 并配置 EF Core DbContext?
解决方案
问题是我无法更新 DbContextOptions ,因此上述方法不起作用。它不是公共演员。
使用选项生成器构建选项。这就是它的用途,因为DbContextOptions
它并非旨在直接在您的应用程序代码中构建。
例如
private DbContextOptions GetDbContextOptionsForCurrentRequest() {
var optionsBuilder = new DbContextOptionsBuilder<DotNetCoreT1DbContext>();
//configure builder
//optionsBuilder.Use*(...);
//get options
var options = optionsBuilder.Options;
return options;
}
推荐阅读
- r - 使 geom_jitter 点变粗
- azure - 错误:无法加载文件或程序集“Microsoft.Identity.Client | Powershell Azure 函数
- flutter - 从 API 中为 ListView 解析复杂的 JSON
- python - 编译 Dockerfile 以在 Python 中安装 wikipedia-API 时出错
- google-sheets - 谷歌表格将数据电子邮件转给人们
- typescript - 接受任何对象作为函数中的参数
- php - 模板字符串作为对象或对象数组
- amazon-web-services - AWS CloudFormation:调整 Redshift 集群的大小
- x86 - UEFI 会取代 SMBIOS 和 ACPI 等标准吗?
- docusignapi - 尝试使用 JSON 设置每个信封 webhook 时出现 UNIFIED_PAYLOAD_FEATURE_NOT_ENABLED 错误