gpt4 book ai didi

c# - 无法生成显式迁移,因为以下显式迁移处于挂起状态

转载 作者:可可西里 更新时间:2023-11-01 08:33:12 25 4
gpt4 key购买 nike

我正在使用 EF 6.1 并通过

在我的项目中启用了代码优先迁移
Enable-Migrations
Add-Migration InitializeDb -ConnectionProviderName System.Data.SqlClient -ConnectionString "Data Source=myServer;Initial Catalog=myDb;Persist Security Info=True;User ID=sa;password=******;application name = L4"
Update-Database -ConnectionProviderName System.Data.SqlClient -ConnectionString "Data Source=myServer;Initial Catalog=myDb;Persist Security Info=True;User ID=sa;password=******;application name = L4" -verbose -script

当我在包管理器中使用 Add-MigrationUpdate-database 明确指定我的 ConnectionStringConnectionProviderName 时安慰它工作正常:

Add-migration updateXtable -ConnectionProviderName System.Data.SqlClient -ConnectionString "Data Source=myServer;Initial Catalog=myDb;Persist Security Info=True;User ID=sa;password=******;application name = L4"

但是当我在没有额外信息的情况下使用 Add-Migration 时:

add-migration updateXtable

我收到以下错误:

Unable to generate an explicit migration because the following explicit migrations are pending: [201408300955376_InitializeDb, 201408311028404_Test]. Apply the pending explicit migrations before attempting to generate a new explicit migration.

因此,每次我需要更新数据库时,我都必须使用以下命令:

Add-Migration UpdateXTable -ConnectionProviderName System.Data.SqlClient -ConnectionString "Data Source=myServer;Initial Catalog=myDb;Persist Security Info=True;User ID=sa;password=******;application name = L4"
Update-Database -ConnectionProviderName System.Data.SqlClient -ConnectionString "Data Source=myServer;Initial Catalog=myDb;Persist Security Info=True;User ID=sa;password=******;application name = L4" -verbose -script

这是我的项目(包含我的DbContext)app.config 文件:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
<connectionStrings>
<add name="ERPContext" connectionString="Data Source=myServer;Initial Catalog=myDb;Persist Security Info=True;User ID=sa;password=******;application name = L4" providerName="System.Data.SqlClient" />
</connectionStrings>

<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
</startup>
</configuration>

谁知道问题出在哪里?

最佳答案

为解决此问题,我将默认项目更改为 app.config 包含正确连接字符串的项目。

这应该是显而易见的,因为系统检测到没有应用的迁移——一个明显的迹象表明它没有找到数据库,一个明显的原因是它找不到连接字符串(如 OP 所总结的那样)。

“后见之明是 20/20”。

关于c# - 无法生成显式迁移,因为以下显式迁移处于挂起状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25638683/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com