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 命令不起作用的主要内容,如果未能解决你的问题,请参考以下文章
带有 EF Core 和 CosmosDB .NET 5 的 ASP.Net Core - IdentityRole 问题
带有 EF Core 的 ASP.NET Core - DTO 集合映射