C# 如何使用上下文工厂从CLI运行EF数据库更新

C# 如何使用上下文工厂从CLI运行EF数据库更新,c#,entity-framework,command-line-interface,entity-framework-migrations,C#,Entity Framework,Command Line Interface,Entity Framework Migrations,我在配置文件中设置连接字符串并使用数据库上下文进行迁移的方法是使用上下文工厂,如下所示:。构建迁移是可行的,但当我尝试运行实际迁移时: dotnet ef database update 我得到一个错误: 找到多个DbContext。指定要使用哪一个。将“-Context”参数用于 PowerShell命令和dotnet命令的“--context”参数 首先,我不知道怎么可能有几个上下文,因为我只有一个上下文。第二个问题,如何指出工厂(我不能指出上下文本身,因为它不会被正确配置,这是工厂的任务

我在配置文件中设置连接字符串并使用数据库上下文进行迁移的方法是使用上下文工厂,如下所示:。构建迁移是可行的,但当我尝试运行实际迁移时:

dotnet ef database update
我得到一个错误:

找到多个DbContext。指定要使用哪一个。将“-Context”参数用于 PowerShell命令和dotnet命令的“--context”参数

首先,我不知道怎么可能有几个上下文,因为我只有一个上下文。第二个问题,如何指出工厂(我不能指出上下文本身,因为它不会被正确配置,这是工厂的任务)

作为一个临时解决方案,我从C#代码执行了迁移,但我想知道如何从CLI执行迁移(如果上下文工厂可以做到的话)

更新1:看起来EF工具被自己的输出搞糊涂了,因为当我现在进行初始迁移时,我无法再执行创建另一个迁移(包含更改)——我得到的错误与上面相同


更新2:在工厂中使用我的上下文类型而不是泛型的
DbContext
目前很有帮助,但由于我已经遇到了构建迁移失败,导致空迁移(以前它还可以工作),我还不确定这是否真的是一个解决方案。

我的意思是,您必须有多个继承自
DbContext
@VidmantasBlazevicius的类,您指的是错误吗?我实际上有一个类继承自
DbContext
,我总共有3个对它的引用——我的上下文(派生)、工厂(创建上下文)和由
dotnet ef migrations add Initial
构建的迁移文件。没什么了。错误消息说必须有多个上下文。可能在asp.net核心的授权代码内。有时脚手架在那里创造了一个新的环境。如果事实并非如此,删除/bin和/obj文件夹可能会有所帮助。@DanielSchmid,这不是ASP.Net应用程序:-)一个项目(普通库)包含类型和上下文,另一个项目(用于迁移)包含用于上下文的配置文件和工厂。今天我甚至删除了旧的迁移,但在创建迁移时仍然存在此错误。我的意思是,您必须有多个继承自
DbContext
@VidmantasBlazevicius的类,您指的是错误吗?我实际上有一个类继承自
DbContext
,我总共有3个对它的引用——我的上下文(派生)、工厂(创建上下文)和由
dotnet ef migrations add Initial
构建的迁移文件。没什么了。错误消息说必须有多个上下文。可能在asp.net核心的授权代码内。有时脚手架在那里创造了一个新的环境。如果事实并非如此,删除/bin和/obj文件夹可能会有所帮助。@DanielSchmid,这不是ASP.Net应用程序:-)一个项目(普通库)包含类型和上下文,另一个项目(用于迁移)包含用于上下文的配置文件和工厂。今天,我甚至删除了旧的迁移,在创建迁移时仍然存在此错误。