【问题标题】:No database provider has been configured for this DbContext asp core没有为此 DbContext asp 核心配置数据库提供程序
【发布时间】:2018-12-15 13:35:51
【问题描述】:

我是一名新的 ASP Core 开发人员。 我想创建一个登录方法并更新我的数据库,但我得到了

没有为此 DbContext asp 核心配置数据库提供程序

我尝试了很多东西,但没有任何效果。

  public void ConfigureServices(IServiceCollection services)
    {

        services.AddDbContext<StudentSelectionContext>();
       
        services.AddMvc();
        
       
        services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
            .AddCookie(option => {
                option.LoginPath = "/User/LogIn";
                option.AccessDeniedPath = "/Error/AccessDenied";
                option.Cookie.SecurePolicy = CookieSecurePolicy.Always;
            });
    }

还有我的 StudentSelectionContext

 public StudentSelectionContext()
    {
    }

    public StudentSelectionContext(DbContextOptions<StudentSelectionContext> options)
        : base(options)
    {
    }

    public virtual DbSet<Department> Department { get; set; }
    public virtual DbSet<FinalDistribution> FinalDistribution { get; set; }
    public virtual DbSet<InfoTable> InfoTable { get; set; }
    public virtual DbSet<Roles> Roles { get; set; }
    public virtual DbSet<StudnetGpa> StudnetGpa { get; set; }
    public virtual DbSet<StuSelection> StuSelection { get; set; }

 
    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        if (!optionsBuilder.IsConfigured)
        {
            var builder = new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddJsonFile("appsettings.json");
            var configuration = builder.Build();
            optionsBuilder.UseSqlServer(configuration.GetConnectionString("DefaultConnection"));
        }
    }

那么问题出在哪里?

【问题讨论】:

  • 您打算使用哪个数据库?这是您需要添加到您的 startup.cs 以使用 PostGres 的示例方法,以及安装 Npgsql.EntityFrameworkCore.PostgreSQL Nuget 包:- services.AddEntityFrameworkNpgsql().AddDbContext(options => options.UseNpgsql(Configuration. GetConnectionString("PostgresConnection")));

标签: asp.net-core-2.0


【解决方案1】:

使用AddDbContext时需要配置DataBase Provider

您可以参考此Database Providers 来查找可用的数据库提供程序。

对于开发模式,你可以试试 SQL Server Express,你可以试试下面的代码:

            services.AddDbContext<ApplicationDbContext>(options =>
            options.UseSqlServer(
                Configuration.GetConnectionString("DefaultConnection")));

ConnectionString 配置在appsettings.json

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-02
    • 2019-02-17
    • 2021-05-04
    • 2016-11-15
    • 2018-11-12
    • 2020-06-16
    • 1970-01-01
    相关资源
    最近更新 更多