【问题标题】:EF 7 with ASP.NET 4.51, "No database providers are configured."带有 ASP.NET 4.51 的 EF 7,“未配置数据库提供程序”。
【发布时间】:2016-05-02 10:05:02
【问题描述】:

尝试在 web api 2 (asp.net 4.51) 应用程序中使用 EF7 上下文时出现此错误。

未配置数据库提供程序。在设置服务时,通过在 DbContext 类或 AddDbContext 方法中重写 OnConfiguring 来配置数据库提供程序。

我使用的是传统的 web.config

<connectionStrings>
    <add name="MemberContext" connectionString="...." 
         providerName="System.Data.SqlClient">
</connectionStrings>

我正在使用 ninject 来注入上下文的实例。

【问题讨论】:

标签: c# entity-framework asp.net-web-api2 entity-framework-core


【解决方案1】:

你需要这样的东西:

public class YourDbContext : DbContext
{

    ...

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlServer("DefaultConnection");
        base.OnConfiguring(optionsBuilder);
    }
}

【讨论】:

  • 使用ninject创建上下文时如何调用?
  • 这是您的 DbContext 类中的覆盖。我会编辑代码给你看
  • 但是没有调用 OnConfiguring 因为我正在使用 ninject
  • Ninject 与这里无关。每当 YourDbContext 被您(新)或 Ninject 实例化时,它将作为 DbContext 初始化的一部分运行此方法。实际上,它可能会在您第一次执行查询时被调用,而不是在初始化 DbContext 时。只要相信:)
  • 进步!但看起来我必须传入连接字符串而不是连接字符串的名称。很容易得到,但很奇怪。
猜你喜欢
  • 1970-01-01
  • 2020-06-16
  • 1970-01-01
  • 2019-02-17
  • 2017-03-27
  • 2012-08-26
  • 1970-01-01
  • 2018-12-14
  • 2018-02-15
相关资源
最近更新 更多