ASP.NET Core EF Add-Migration 命令不起作用

Posted

技术标签:

【中文标题】ASP.NET Core EF Add-Migration 命令不起作用【英文标题】:ASP.NET Core EF Add-Migration command not working 【发布时间】:2016-11-04 20:36:06 【问题描述】:

当我在从同一教程创建的 VS2015 项目中运行 PM> Add-Migration MyFirstMigration 命令时,按照此 Microsoft Tutorial,我收到以下我无法解决的错误:

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

注意事项

    我正在使用上述教程,但我使用的是Individual User Account 身份验证,而不是教程中使用的No Authentication。 我有最新版本的ASP.NeT Core 1.0 and VS2015-Update 3 on windows 8.1 这是一个新创建的项目。没有手动安装其他 DbContext

【问题讨论】:

错误文字描述了原因和应该怎么做。 【参考方案1】:

运行以下命令(从 this article 获得)和来自 @Maverik 的响应(来自 *** here)以及来自上述@doctor 的建议帮助我解决了这个问题。谢谢大家的帮助:

PM> Add-Migration MyFirstMigration -Context BloggingContext

【讨论】:

同时 -Context 更改为 -c 我可以测试 在.net core 2.0中应该是--context 是否有可能多个上下文在 name 中相同但仅在 namespace 中不同?【参考方案2】:

那是因为您的解决方案中有两个 DbContext。首先是在您创建项目(ApplicationDbContext)时默认创建,其次是您的 EF DbContext。 错误消息中描述了解决方案,只需指定您的 EF DbContext

【讨论】:

【参考方案3】:

如果有多个 DbContext,则错误清楚地解释了使用 db 上下文名称提及 --context。因此,请尝试提及您的 DbContext 名称。

dotnet ef migrations add Initial --context SampleDbContext

希望这会有所帮助。

【讨论】:

不是有多个数据库上下文的问题吗?我们需要多个上下文吗?我们如何识别和删除它们?? 没有。这不是多个数据库上下文的问题。我们可以使用多个数据库上下文,例如在多租户架构中它需要多个数据库上下文。所以有些情况需要多个数据库上下文。 没有列出如果您有多个上下文该怎么做。如果我有 10 个呢?我列出--context 10 次???【参考方案4】:

如果您只需要更新现有的身份架构,请尝试:

update-database -Context ApplicationDbContext

ApplicationDbContext = 你的身份上下文

【讨论】:

【参考方案5】:

Add-Migration MyFirstMigration -Context DbContextName

它在我的项目中确实有效。

【讨论】:

【参考方案6】:

使用下面的命令:

PM> Add-Migration MyFirstMigration -Context YourDbContext

PM> 更新数据库-Context YourDbContext

【讨论】:

Add-Migration 和 dotnet ef Initial Migration 有什么区别?【参考方案7】:

[--context]

要使用的 DbContext 类。仅类名或完全限定 命名空间。如果省略此选项,EF Core 将查找上下文 班级。如果有多个上下文类,则需要此选项。

Add-Migration MyMigration -context DataContextName

【讨论】:

以上是关于ASP.NET Core EF Add-Migration 命令不起作用的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Core 使用 EF Core

带有 EF Core 和 CosmosDB .NET 5 的 ASP.Net Core - IdentityRole 问题

带有 EF Core 的 ASP.NET Core - DTO 集合映射

如何使用 EF Core 在 ASP.NET Core 中取消应用迁移

EF Core ASP.Net Core 编辑迁移

如何使用 ASP.NET Core 设置 EF6 迁移