尚未为此带有 SQL Server 的 DbContext .NET Core 配置数据库提供程序

2024-05-29

我一直用这个把头撞在墙上,并且一直在谷歌上搜索无济于事。

我刚刚开始一个新的 ASP.NET Core MVC 项目,我已将这两个包安装/更新为 2.2.0:

Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.Tools

我已将项目设置为期望 .NET Core 2.2.0。

我能够在包管理器控制台中使用此命令成功添加表架构以搭建数据库,因此我知道连接字符串正常/工作:

Scaffold-DbContext "SERVER=Server\Instance;DATABASE=Database;UID=user;PWD=password;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Tables Table1, Table2, Table3

创建的模型文件,DatabaseDBContext.cs看起来像这样:

public partial class DatabaseDBContext : DbContext
{
    public DatabaseDBContext()
    {
    }

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

这还包含一种用于检索我的脚手架数据的方法,但对于生产使用来说不被认为是安全的,因此我将其注释掉:

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
    if (!optionsBuilder.IsConfigured)
    {
        optionsBuilder.UseSqlServer("SERVER=Server\\Instance;DATABASE=Database;UID=user;PWD=password;");
    }
}

我将相同的连接字符串添加到appsettings.json file:

{
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "ConnectionStrings": {
    "DBConnString": "SERVER=Server\\Instance;DATABASE=Database;UID=user;PWD=password;"
  }
}

然后我添加了DbContext to the startup.cs file:

public void ConfigureServices(IServiceCollection services)
{
    // Add framework services.
    services.AddMvc();

    services.AddDbContext<DatabaseDBContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DBConnString")));
}

尝试为其中一个表添加新的支架控制器会引发此错误:

寻找发电机“控制器”...
运行发电机“控制器”...
尝试在内存中编译应用程序。
尝试找出模型和 DbContext 的 EntityFramework 元数据:“TableName”

尚未为此 DbContext 配置数据库提供程序。可以通过重写 DbContext.OnConfiguring 方法或在应用程序服务提供程序上使用 AddDbContext 来配置提供程序。如果使用 AddDbContext,还请确保您的 DbContext 类型在其构造函数中接受 DbContextOptions 对象,并将其传递给 DbContext 的基本构造函数。

堆栈跟踪:
在 Microsoft.EntityFrameworkCore.Internal.DbContextServices.Initialize(IServiceProvider scopedProvider,IDbContextOptions contextOptions,DbContext context)
在 Microsoft.EntityFrameworkCore.DbContext.get_InternalServiceProvider()
在 Microsoft.EntityFrameworkCore.Internal.InternalAccessorExtensions.GetService[TService](IInfrastruct1 accessor)
at Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.CreateContext(Func
1个工厂)

尚未为此 DbContext 配置数据库提供程序。可以通过重写 DbContext.OnConfiguring 方法或在应用程序服务提供程序上使用 AddDbContext 来配置提供程序。如果使用 AddDbContext,还请确保您的 DbContext 类型在其构造函数中接受 DbContextOptions 对象,并将其传递给 DbContext 的基本构造函数。

有人知道我在这里做错了什么吗?


我遇到了同样的问题,这为我解决了它(在 OnConfiguring 中设置 UseSqlServer):

protected override void OnConfiguring(DbContextOptionsBuilder builder)
{
    if (!builder.IsConfigured)
    {
        string conn = this.IsProduction ? Const.ProductionConnectionString : Const.LocalDBConnectionString;

        builder.UseSqlServer(conn);
    }

    base.OnConfiguring(builder);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

尚未为此带有 SQL Server 的 DbContext .NET Core 配置数据库提供程序 的相关文章

随机推荐

  • Symfony 4 生产模式错误处理页面内存耗尽

    我将我的项目设置为prod模式在 env除了自定义错误页面之外的所有内容似乎都有效 我将此作为我的 404 树枝模板 templates bundles TwigBundle Exception error404 html twig inc
  • 如何终止 Julia 中的任务/协程?

    using HttpServer http HttpHandler do request Request response Response show request Response Hello there end http events
  • onClick 处理程序在每个渲染周期触发

    我有这样的默认状态 this state selectedTab tab1 then 我的渲染方法是这样的 render const selectedTab this state return li tab1 li li tab2 li d
  • Bootstrap 响应式表格在 iOS 设备上无法垂直滚动

    这就是我所拥有的 div class table responsive table class table style background transparent table div 我正在使用以下 bootstrap css 文件 ht
  • Git子模块绝对工作树路径配置

    这是我的子模块redmine 仪表板配置文件 子模块配置文件 core repositoryformatversion 0 filemode true bare false logallrefupdates true worktree Us
  • Python有条件求解时滞微分方程

    我在用dde23 of pydelay包来求解延迟微分方程 我的问题 如何有条件地编写方程 例如目标方程有两个选项 when x gt 1 dx dt 0 25 x t tau 1 0 pow x t tau 10 0 0 1 x othe
  • 如何在多分支管道中为特定分支设置下一个版本号

    我正在尝试以编程方式为我们的发布分支设置下一个版本号 但我遇到了一个问题 以下是我尝试过的两种方法 def job Jenkins instance getItem master job nextBuildNumber env BUILD
  • 计算 Windows 10 上第 3 方窗口的标题栏按钮的总宽度

    我最初的方法是使用GetSystemMetrics with SystemMetric SM CXSIZE以及一些基于可用按钮的简单数学计算 乘以 3 或乘以 1 通过WindowStyle DllImport user32 dll pri
  • 响应式 dc.js 图表占据了整个窗口

    我在使图表响应时遇到问题 我尝试将相同的示例应用于此链接中的 DC js 和 Crossfilter 调整大小系列 https github com dc js dc js blob master web src resizing resi
  • 使用 .net 3.5 和 C# 检测 Chrome

    好的 我正在使用此代码来检测浏览器 使用 chrome 时 它 给我浏览器 苹果MAC Safari 我需要它说 chrome Ater 环顾四周 我发现了这个 Google Chrome Safari 相同的浏览器名称和版本 https
  • java 中的梵文 i18n

    我正在尝试使用来自互联网的示例 ttf 文件在 java 中使用 i18n 进行梵文 印地文 我可以加载资源包条目 还可以加载 ttf 并设置字体 但它不会根据需要呈现 jlabel 它显示块代替字符 如果我在 Eclipse 中调试 我可
  • 垂直 ViewPager 中的动画

    我需要垂直制作这个动画ViewPager https www youtube com watch v wuE 4jjnp3g https www youtube com watch v wuE 4jjnp3g 这是我到目前为止所尝试的 vi
  • 无法在 Powershell 中运行 R.exe

    我经常发现在命令行 Windows 上运行 R 更有用 然而 当我在 Powershell 中尝试时 我往往会遇到问题 但这可以通过第一次运行轻松克服cmd然后就可以了 这是我执行此操作时遇到的错误R CMD BATCH Invoke Hi
  • 检测 iPhone 屏幕是否打开/关闭

    有没有办法检测 iPhone 的屏幕是打开还是关闭 例如 当按下手机的屏幕锁定按钮时 我一直在使用 void applicationWillResignActive UIApplication application 为此类事件做准备 在大
  • Kivy - 文本换行工作错误

    我正在尝试在 Kivy 1 8 0 应用程序中换行文本 当没有太多文字时 一切正常 但如果文本很长并且窗口不是很大 它只是剪切文本 这是示例代码 vbox BoxLayout orientation vertical size hint y
  • Python 2.7 将比特币私钥转换为 WIF 私钥

    作为一名编码新手 我刚刚完成了教程 教程是这样的 https www youtube com watch v tX XokHf nI https www youtube com watch v tX XokHf nI 我想用 1 个易于阅读
  • 如何使用 jQuery 选择第一个块级父级?

    考虑以下标记 div h1 span span lorem ipsum span span h1 div 如何找到块级别的 span 3 的第一个父级 即具有display block 使用 jQuery 在这种情况下 那就是h1 1 3
  • boto3 资源(例如 DynamoDB.Table)的类型注释

    The boto3库提供了几种返回资源的工厂方法 例如 dynamo boto3 resource dynamodb Table os environ DYNAMODB TABLE 我想注释这些资源 以便我可以获得更好的类型检查和完成 但我
  • Java 小程序在 Mac 上闪烁

    这个问题很奇怪 问题并非在每个平台上都会发生 我在使用 MacOSX 的 Google Chrome 中出现了这种情况 但在 Safari 中却没有出现这种情况 对于使用 Windows 的朋友来说 在 Google Chrome 上运行得
  • 尚未为此带有 SQL Server 的 DbContext .NET Core 配置数据库提供程序

    我一直用这个把头撞在墙上 并且一直在谷歌上搜索无济于事 我刚刚开始一个新的 ASP NET Core MVC 项目 我已将这两个包安装 更新为 2 2 0 Microsoft EntityFrameworkCore SqlServer Mi