c# - 实体框架核心上下文实例选项
问题描述
我是 EF Core 的新手。
我创建了从 appsettings.json 引用的上下文
public APITestDBContext(DbContextOptions<APITestDBContext> options):base(options)
{
}
工作得很好。我能够以 Code First 方法更新数据库。但是当我尝试从 dbcontext 创建一个实例时,它正在等待选项。我不知道期待什么选择。
private APITestDBContext db = new APITestDBContext();
没有给出与“APITestDBContext.APITestDBContext(DbContextOptions)”所需的形式参数“options”相对应的参数
我需要在那里写什么?
解决方案
你所做的很好,你支持你的类的依赖注入,并且在 Startup.cs 的 ConfigureService 方法中你提到了如何解决注入。所以现在当你需要像这样创建新的时候。您的类需要一个您需要提供的构造函数参数,该参数与您的启动类中的参数值相同。
或为构造函数创建另一个重载,如下所示,不接受任何参数:
public APITestDBContext():base()
{
}
但要做到这一点,它将调用 DBContext.OnConfiguring() 方法来设置您需要实现的数据库。
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer("Your Connection String");
}
推荐阅读
- vba - 使用 ItemAdd 事件将邮件项移动/复制到文件夹会生成错误
- c# - 如何在 WPF 中显示和绑定数据属性的变量编号(和类型)
- web-services - MSI 安装成功但未安装服务,事件日志中出现 MsiExec 错误
- excel - 更好的做事方式?VBA
- java - 将文件上传到只能通过另一个 SSH/SFTP 服务器访问的 SFTP 服务器
- ios - 我应该在 iPhone X 和 iPhone 8 Plus 中选择哪些@3x 图片
- c++ - C++ 正则表达式从字符串中提取所有可能的 10 位数字
- android - 在用户滑动删除应用程序之前删除文件
- html - 如何在 HTML FlexBox 中将文本与换行符右对齐
- python - 在熊猫分组后选择样本随机组?