Nom*_*eed 90 entity-framework ef-migrations
我正在添加新的迁移,但此消息显示:
无法生成显式迁移,因为以下显式迁移正在等待处理:[201203170856167_left].在尝试生成新的显式迁移之前应用挂起的显式迁移.
谁能帮我?
Lad*_*nka 79
它告诉您应用程序中存在一些未经处理的迁移,并且需要先运行Update-Database才能添加其他迁移.
Rob*_*ell 47
我有同样的问题.实际上,实体框架在无法连接到数据库时会生成此错误.因此,请确保在搜索其他问题之前能够访问它.
soc*_*man 31
您需要从包管理器控制台运行"update-database"以将更改推送到数据库,或者您可以从Migrations文件夹中删除挂起的迁移文件([201203170856167_left]),然后重新运行"add-migration"到根据您的修改创建全新的迁移.
Tho*_*mas 25
此错误还可能意味着不再识别迁移.在Migrations.Configuration中更改了ContextKey的值后发生了这种情况.解决方案只是更新数据库表"__MigrationHistory"中的ContextKey(或者我想在Configuration类中恢复值).应用程序中的ContextKey和Namespace应该匹配.
Jes*_*ess 15
再次检查连接字符串.
确保您要连接的用户仍具有读取[__MigrationHistory]权限并具有编辑架构的权限.
您还可以尝试更改App或Web配置文件中的连接字符串,以使用Integrated Security(Windows Auth)以您自己的身份运行add-migration命令.
例如:
connectionString="data source=server;initial catalog=db;persist security info=True;Integrated Security=SSPI;"
Run Code Online (Sandbox Code Playgroud)
此连接字符串将位于DbContext所在项目的App.config文件中.
你可以在命令行上的启动项目,或者你可以右键点击与该项目DbContext,Configuration并迁移文件夹并选择设为启动项目.我很认真,这实际上可以提供帮助.
小智 8
有同样的问题,能够通过以上答案的一些提示解决:
在程序包管理器控制台中使用"update-database -verbose"以获取迁移尝试连接到的更具体的信息.(在我的情况下帮我找到我的启动项目没有正确设置......)
遇到此问题时,请尝试向add-migration cmdlet添加参数.例如,指定启动项目以及连接字符串名称可以帮助EF找到目标数据库.
add-migration Delta_Defect_0973 -ConfigurationTypeName your.namespace.ContextClassName -StartUpProject DeltaProject -ConnectionStringName DeltaSQL
Run Code Online (Sandbox Code Playgroud)
哪里:
Delta_Defect_0973是迁移的名称
your.namespace.ContextClassName是迁移文件夹中Configuration类的名称,前缀为全名空间.
DeltaProject是使用web.config或app.config文件的主项目的名称.
DeltaSQL是web.config或app.config文件中定义的连接字符串的名称.
如果你还没有用过,Update-Database你可以删除它.如果您运行更新,然后使用它回滚Update-Database -TargetMigration "NameOfPreviousMigration",然后将其删除.
参考:http: //elegantcode.com/2012/04/12/entity-framework-migrations-tips/
我直接从这里复制了这个文本:如何撤消上一次Add-Migration命令?
此错误表示在执行另一个显式迁移之前需要提交待定迁移.你可以选择
在此之后,您可以再次启动"添加 - 迁移..."
希望能帮助到你