C# 无法从asp.net core中的另一个项目中查看DbContext

C# 无法从asp.net core中的另一个项目中查看DbContext,c#,asp.net-core,C#,Asp.net Core,我有一个webapi项目“Reactivities”和另一个项目“persitence”来放置我的DbContext。当我尝试在Reactivities中使用我的添加迁移时,在控制台中使用此语法add migration InitalCreate-Context。\Persistence我收到以下错误: 未找到名为“.\Persistence”的DbContext。 即使我使用add migration InitialCreate-Context.\Persistence\DataContext

我有一个webapi项目“Reactivities”和另一个项目“persitence”来放置我的DbContext。当我尝试在Reactivities中使用我的添加迁移时,在控制台中使用此语法
add migration InitalCreate-Context。\Persistence
我收到以下错误:

未找到名为“.\Persistence”的DbContext。

即使我使用
add migration InitialCreate-Context.\Persistence\DataContext
仍然会得到相同的错误

这是在我的反应性创业课程中

services.AddDbContext<DataContext>(opt =>
            {
                opt.UseSqlite(Configuration.GetConnectionString("DefaultConnection"));
            });
services.AddDbContext(opt=>
{
opt.UseSqlite(Configuration.GetConnectionString(“DefaultConnection”);
});

如何更正此问题?

您必须在实例化dbcontext的项目中执行迁移工作,在我的例子中,我创建了一个dbmigrator项目,其中包含一个继承dbcontext的类
IDesignTimeDbContextFactory
其中T是dbcontext类型

这允许我有一个包含dbcontexts的项目,一个处理迁移的项目,以及一个独立使用dbcontexts的项目

本指南向您展示了如何使用我提到的界面:

控制台窗口顶部有一个组合框,列出了所有项目。您是否选择了包含上述上下文的项目?是否尝试在package manager控制台中将所选项目更改为持久化?没有提到它有多个dbcontexno,但关键是要处理迁移,目标项目必须能够实例化。如果“Persistience”无法实例化dbcontext,可能是因为它没有设置或定义以外的任何其他代码,则可以向该项目添加一个实现IDesignTimeDbContextFactory的类,并告诉它设置,这样即使该项目不“使用”也可以对该项目使用迁移另外,如果他要添加针对Reactivities项目的迁移,那么迁移将添加到Reactivities项目中,这有点违背了从该项目中删除dbcontext的目的。