我一直在学习本教程:YT教程(从我的问题开始(,但我在.NET6上。当我添加迁移时,我可以得到两个错误:
- 尚未为此DbContext配置数据库提供程序(…(
- 无法创建"PmrDbContext"类型的对象。(…(<-如果我省略了默认构造函数,就会发生这种情况
Program.cs:
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
var app = builder.Build();
string connectionString = builder.Configuration.GetConnectionString("DevConnection");
builder.Services.AddDbContext<PmrDbContext>(options => options.UseSqlServer(connectionString));
PmrDbContext.cs:
public class PmrDbContext : DbContext
{
// default constructor there - one or the other error
public PmrDbContext(DbContextOptions<PmrDbContext> options) : base(options)
{
}
public DbSet<Employee> Employees { get; set; }
}
ConnectionString:
"ConnectionStrings": {
"DevConnection": "Server=(local)\sqlexpress;Database=PMRHomeDB;Trusted_Connection=True;MultipleActiveResultSets=True;"
}
我需要先创建一个数据库吗?这不是一个代码优先的EF解决方案吗?
在Build((之后不可能更改Services,所以我将AddDbContext移到了它之前,同时在我的DbContext类中省略了默认构造函数。
string connectionString = builder.Configuration.GetConnectionString("DevConnection");
builder.Services.AddDbContext<PmrDbContext>(options => options.UseSqlServer(connectionString));
var app = builder.Build();
我负责这个项目,它正在发挥作用。此外,添加迁移也以这种方式工作。