我可以在我的网络配置中更新数据库:
Update-Database -Verbose
部署数据库时,我在web.config.debug转换文件中定义了不同的连接字符串。
如何为构建配置使用正确的连接字符串?
例如:
Web.config
:
<configuration>
<connectionStrings>
<add name="MyConnection" connectionString="My_Local_Connection_String"/>
</connectionStrings>
</configuration>
Web.config.Debug
:
Web.config.Release
:
<configuration>
<connectionStrings>
<add name="MyConnection" connectionString="My_Release_Connection_String" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>
</configuration>
一旦我证明本地迁移是正常的,我需要在连接字符串Web.config.Debug
上进行相同的迁移,并假设它适用于发布版本。
如何告诉EF使用哪种配置转换?
答案 0 :(得分:0)
可能有更好的解决方案,但想到的一个简单的解决方案是:
在迁移配置类中,使用预处理器#if指定连接字符串,例如
internal sealed class Configuration : DbMigrationsConfiguration<MyApplicationContext>
{
public Configuration()
{
AutomaticMigrationsEnabled = false;
string connectionStringName;
#if DEBUG
connectionStringName = "MyApplication-Debug";
#else
connectionStringName = "MyApplication-Release";
#endif
TargetDatabase = new DbConnectionInfo(connectionStringName);
}
}
答案 1 :(得分:0)
如果您使用的是 dotnet CLI,那么您可以通过
指定目标构建配置--configuration
论证