首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >初始数据库迁移:尚未为此DbContext配置数据库提供程序

初始数据库迁移:尚未为此DbContext配置数据库提供程序
EN

Stack Overflow用户
提问于 2020-12-07 18:39:03
回答 1查看 143关注 0票数 2

我有以下DbContext类:

代码语言:javascript
代码运行次数:0
运行
复制
public class BingoMasterDbContext : DbContext
{
    public DbSet<User> Users { get; set; }
    public DbSet<Player> Players { get; set; }
    public DbSet<Game> Games { get; set; }

    public BingoMasterDbContext() { }

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

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<User>()
            .HasOne(user => user.Player)
            .WithOne(player => player.User)
            .HasForeignKey<Player>(player => player.UserId);
    }
}

我在StartUp.cs中的ConfigureServices方法中注册了DbContext,并将连接字符串添加到appsettings.json

代码语言:javascript
代码运行次数:0
运行
复制
services.AddControllers();
services.AddDbContext<BingoMasterDbContext>(
    options => options.UseSqlServer(Configuration.GetConnectionString("Database")));

我尝试使用EF核心命令dotnet ef migrations add InitialCreate创建初始迁移,这导致了以下错误:

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

错误消息指出,我应该注册DbContext,并在构造函数中添加一个DbContextOptions对象,然后将其传递给基构造器。我做了所有这些,但不幸的是没有运气。我不知道我做错了什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-07 20:13:37

问题是,我从DbContext所在的entities项目中运行了add migrations命令,但DbContext本身只在我的Startup.cs所在的API项目中注册和创建。下面的命令做到了这一点:

dotnet ef migrations add MigrationName -s mainProject -p DbContextProject

有关详细信息,请查看此Github issue

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65180146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档