当我使用 .net 7 在 Visual Studio 中为 DBContext 添加迁移时,我遇到了此错误:
访问 Microsoft.Extensions.Hosting 服务时发生错误。在没有应用程序服务提供商的情况下继续。错误:无法从文件“C:\Users\User\VIsualStudioProject\Proj1\Proj1Project ppsettings.Development.json”加载配置。 无法创建“Proj1DBContext”类型的对象。有关设计时支持的不同模式,请参阅 https://go.microsoft.com/fwlink/?linkid=851728
我想知道如何解决这个问题?
我的appsettings.json:
"AllowedHosts": "*",
"ConnectionStrings": {
"Proj1DbConnectionString": "Server=User\\SQLEXPRESS;Database=Proj1DbContext;Trusted_Connection=True;TrustServerCertificate=Yes"
}
我的程序.cs:
builder.Services.AddDbContext<Proj1DBContext>(options =>
options.UseSqlServer(builder.Configuration.GetConnectionString("Proj1DbConnectionString")));
我的 Proj1DBContext.cs:
public class Proj1DBContext : DbContext
{
public Proj1DBContext(DbContextOptions options) : base(options)
{
}
public DbSet<Post> Posts { get; set; }
public DbSet<Hashtag> Hashtags { get; set; }
}
我尝试将我的program.cs修改为:
builder.Services.AddDbContext<EveryoneShareDBContext>();
并在我的 dbcontext.cs 中添加一个构造函数,如下所示:
public Proj1DBContext(){}
但是随后我将面临一个新的错误,如下所示:
尚未为此 DbContext 配置数据库提供程序。可以通过重写“DbContext.OnConfiguring”方法或在应用程序服务提供程序上使用“AddDbContext”来配置提供程序。如果使用“AddDbContext”,则还要确保您的 DbContext 类型在其构造函数中接受 DbContextOptions 对象,并将其传递给 DbContext 的基本构造函数。
有什么帮助吗?
Proj1DBContext.cs 中缺少
<Proj1DBContext>
。
尝试以下。
public class Proj1DBContext : DbContext
{
public Proj1DBContext(DbContextOptions<Proj1DBContext> options) : base(options)
{
}
public DbSet<Post> Posts { get; set; }
public DbSet<Hashtag> Hashtags { get; set; }
}