c# - 实体框架核心缺少参数“提供者”
问题描述
我正在尝试使用迁移将我的 ASP.NET Core 网站连接到数据库。我正在使用命令
Scaffold-DbContext "Data Source=localhost;Initial Catalog=BlogDB;Integrated Security=True" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
生成模型等。但是在运行命令时出现以下错误:
缺少必需的参数''
如果需要,启动类只是当前的标准模板:
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
namespace Personal_Blog
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
}
}
}
问题的一个例子是:
PM> Scaffold-DbContext "Data Source=localhost;Initial Catalog=BlogDB;Integrated Security=True" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Verbose
Using project 'Personal Blog'.
Using startup project 'Personal Blog'.
Build started...
Build succeeded.
C:\Program Files\dotnet\dotnet.exe exec --depsfile "D:\Code\Personal\Personal Blog\Personal Blog\Personal Blog\bin\Debug\netcoreapp3.1\Personal Blog.deps.json" --additionalprobingpath C:\Users\samh\.nuget\packages --additionalprobingpath "C:\Program Files\dotnet\sdk\NuGetFallbackFolder" --runtimeconfig "D:\Code\Personal\Personal Blog\Personal Blog\Personal Blog\bin\Debug\netcoreapp3.1\Personal Blog.runtimeconfig.json" C:\Users\samh\.nuget\packages\microsoft.entityframeworkcore.tools\6.0.0-preview.1.21102.2\tools\netcoreapp2.0\any\ef.dll dbcontext scaffold "Data Source=localhost;Initial Catalog=BlogDB;Integrated Security=True" Microsoft.EntityFrameworkCore.SqlServer --json --output-dir Models --verbose --no-color --prefix-output --assembly "D:\Code\Personal\Personal Blog\Personal Blog\Personal Blog\bin\Debug\netcoreapp3.1\Personal Blog.dll" --startup-assembly "D:\Code\Personal\Personal Blog\Personal Blog\Personal Blog\bin\Debug\netcoreapp3.1\Personal Blog.dll" --project-dir "D:\Code\Personal\Personal Blog\Personal Blog\Personal Blog\\" --language C# --working-dir "D:\Code\Personal\Personal Blog\Personal Blog" --root-namespace Personal_Blog
Microsoft.EntityFrameworkCore.Tools.CommandException: Missing required argument '<PROVIDER>'.
at Microsoft.EntityFrameworkCore.Tools.Commands.DbContextScaffoldCommand.Validate()
at Microsoft.EntityFrameworkCore.Tools.Commands.CommandBase.<>c__DisplayClass0_0.<Configure>b__0(String[] args)
at Microsoft.DotNet.Cli.CommandLine.CommandLineApplication.Execute(String[] args)
at Microsoft.EntityFrameworkCore.Tools.Program.Main(String[] args)
Missing required argument '<PROVIDER>'.
谁能告诉我我错过了什么?
提前谢谢了。
解决方案
这也发生在我身上。我意识到我已经为 EF 安装了预览版 (6.0) 包,因此我将它们降级为最新的稳定版本。但是我仍然遇到同样的错误。
重新启动 Visual Studio 后,Scaffold-DbContext 命令工作正常。
推荐阅读
- python-3.x - 将 OBJECT ATTRIBUTE 更改为 PYTHON 中另一个 OBJECT 的属性
- javascript - 如何从单独的 js 文件调用存储在 chrome.storage 中的变量值?
- matlab - 3D 图像对齐:如何从 matlab 中的 3x3 旋转矩阵中提取关于“静态”x、y、z 轴的旋转角度
- javascript - 存储 WebRTC 连接以供以后使用的正确方法是什么?
- postgresql - Postgres 中针对 WHERE IN (...) 和 ORDER BY 的高效查询/索引
- c++ - 如何获取字符串数组中的项目数?
- php - SQL 选择结果并将它们用作更新语句中的数组
- java - 关闭“...想知道您的位置”对话框
- c# - C# Winform如何迭代面板父级内的所有面板子级
- php - 当计数器达到 5 时中断 Foreach | PHP