c# - 我无法在 ASP.NET Core 中创建迁移。解决办法是什么?
问题描述
Visual Studio 2019 社区。我想创建一个表来创建迁移并连接 SQL Server 2014。但是当我运行时
add-migrations AddMusicStoreToDb
我收到一个错误:
add-migrations:术语“add-migrations”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确并重试。
在行:1 char: 1
+ add-migrations AddMusicStoreToDb
+ ~~~~~~~~~~~~~~~
+ CategoryInfo: ObjectNotFound: (add-migrations: String) [], CommandNotFoundException
+ FullyQualifiedErrorId: CommandNotFoundException
appsettings.json
:
{
"ConnectingStrings": {
"DefaultConnection": "Server=DESKTOP-NHG0GU1\\SQLEXPRESS;Database=MusicStoreList ;Trusted_Connection=True;MultipleActiveResultSets=true;"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*"
}
MusicStoreListContext.cs:
using Microsoft.EntityFrameworkCore;
namespace MusicStoreRazor.UI.Models
{
public class MusicStoreListContext:DbContext
{
public MusicStoreListContext(DbContextOptions<MusicStoreListContext> options):base(options)
{
}
public DbSet<Music> Musics { get; set; }
}
}
启动.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.HttpsPolicy;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Options;
using MusicStoreRazor.UI.Models;
namespace MusicStoreRazor.UI
{
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.AddDbContext<MusicStoreListContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddRazorPages().AddRazorRuntimeCompilation();
}
// 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("/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.MapRazorPages();
});
}
}
}
解决方案
您是否已将这些必需的 NuGet 包安装到您的解决方案中,以便首先在 asp.net 核心代码中执行与数据库相关的操作?
1、Microsoft.EntityFrameworkCore.SqlServer:提供类连接SQL Server对Entity Framework Core进行CRUD操作
2. Microsoft.EntityFrameworkCore.Tools:帮助处理与数据库相关的活动,如添加迁移、脚本迁移、获取数据库上下文、更新数据库等
如果没有,则使用包管理器控制台或 NuGet 包管理器安装这些包。
推荐阅读
- c# - 正则表达式识别有效文件路径和文件名太慢
- mysql - 如何获取使用 JOIN 返回的相关表的行数?
- python - 如何在大型项目上快速修改 python 代码?如何在多模块python项目中运行代码段
- python - 如何在循环内赋值?
- java - android中所有应用程序的共享链接按钮
- excel - Excel 枢轴计算字段
- android - listView 上的复选框可防止事件单击,kotlin
- python - 如何从 Azure IoT Edge 模块 Python 发送新消息
- react-native - React-Native Android 构建失败:任务“:app:processDebugResources”执行失败。处理资源失败
- wordpress - 使用 WP JWT Auth 登录 Facebook