【发布时间】:2022-02-09 17:24:42
【问题描述】:
我有一个项目并使用 .NET 6 创建它。
在我的DbContext 中添加一些DbSet 之前,我使用了Add-Migration 命令,它工作正常并为我制作了迁移文件。
今天添加一个新的DbSet 到我的DbContext 之后使用Add-Migration 命令但我得到一个错误:
无法创建“HospitalNetDbContext”类型的对象。有关设计时支持的不同模式,请参阅https://go.microsoft.com/fwlink/?linkid=851728
我从这个链接获得了一些信息,但我无法解决我的问题。
有人建议在DbContext 类中使用没有参数的承包商,但是当我将此承包商添加到DbContext 类之后,我使用了Add-Migration 命令,我得到一个新的错误:
没有为此 DbContext 配置数据库提供程序。可以通过覆盖“DbContext.OnConfiguring”方法或在应用程序服务提供程序上使用“AddDbContext”来配置提供程序。如果使用了“AddDbContext”,那么还要确保您的 DbContext 类型在其构造函数中接受 DbContextOptions 对象并将其传递给 DbContext 的基本构造函数。
在这个错误之后,我添加了一个与下面相同的新构造函数,但我的问题仍然存在:
public HospitalNetDbContext(DbContextOptions<HospitalNetDbContext> options) : base(options)
{
}
关于我的项目的更多信息是定义到应用程序设置文件和启动文件中的连接字符串,使用下面的代码将连接字符串设置为DbContext,而不是添加到DbContext 类中的覆盖OnConfiguring 方法中。
services.AddDbContext<HospitalNetDbContext>(x => x.UseSqlServer(Configuration.GetConnectionString("HospitalNetDb")));
【问题讨论】:
-
我通过在 OnConfiguring 方法中添加以下代码解决了这个问题 =>
optionsBuilder.UseSqlServer(@"MyConnectionStrig");
标签: c# .net-core entity-framework-core entity-framework-migrations