我在C#项目中有多个dbcontexts,并且当我指定完整命令时,我尝试启用迁移,即:
"启用 - 迁移-ContextTypeName Models.Account.AccountDetailDbContext"
使用配置类
创建迁移文件夹然后我收到一条消息:
"检查上下文是否以现有数据库为目标......"
然后
"迁移配置类型' Portal.WebUI.Migrations.Configuration'未在装配' Portal.WebUI'。"
中找到即使它刚刚创建了文件,也无法找到它。
有人可以帮忙吗?
我在软件包管理器控制台中选择了正确的项目
我已尝试使用-verbose命令,但它没有提供其他信息
如果我将dbcontexts和类复制到一个新项目中,那么它一切正常,所以它必须是这个现有项目中的某个东西,它使迁移失败,但我不能告诉它是什么。
提前感谢您的回答
答案 0 :(得分:2)
我通过在EntityFrameworkCore\
之前添加Add-Migration
来解决此问题,即最终声明是:
EntityFrameworkCore\Add-Migration
为新迁移命名后。
答案 1 :(得分:1)
我设法通过卸载EF nuget包然后重新安装来解决这个问题。
相当恼人......但我希望它可以帮助别人。
答案 2 :(得分:1)
值得检查的另一个可能问题是:您的项目是否已签署?正如我刚刚发现的那样,如果使用强名称密钥文件对程序集进行签名,则此问题也会发生。 EntityFramework工具包的一部分是在迁移过程中调用的migrate.exe。如果程序集已签名,则此应用程序无法找到配置类型。
解决方案似乎是< Project> →属性→签名:取消勾选"签署程序集",至少在执行迁移任务时。你完成后再勾选它。
答案 3 :(得分:0)
由于命名空间中的拼写错误,我也遇到了这个问题
答案 4 :(得分:0)
我遇到了同样的问题。我发现,在我的项目名称中,"-"
被包含为"abc-xyz"
。我删除了我的项目并将其重新创建为"abcxyz"
并且它有效。不要重命名项目 - 您必须在每次引用时重命名它。在这种情况下,首先卸载EF并重命名,然后再次安装EF。
答案 5 :(得分:0)
我遇到了这个问题。我的解决方案:
退出Visual Studio
在Visual Studio上再次打开项目
重建解决方案
然后将错误消除。我可以运行命令。
答案 6 :(得分:0)
运行Enable-Migrations
并且创建配置文件后,重新生成项目并再次运行Enable-Migrations -Force
。
答案 7 :(得分:0)
我遇到了这个问题,通过更改程序包管理器控制台顶部的下拉框来选择正确的项目,此问题得以解决。您可能需要最大化软件包管理器控制台的宽度才能看到此框。