繁体   English   中英

EF迁移不使用Web Config连接字符串

[英]EF Migrations not using Web Config connection string

我有我的web.config文件:

<connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=.\SRV;Initial Catalog=SomeCatalog;Integrated Security=true;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />
  </connectionStrings>

我有我的web.debug.config

<connectionStrings>
        <add name="DefaultConnection" connectionString="Data Source=.\SRV;Initial Catalog=SomeCatalog;Integrated Security=true;MultipleActiveResultSets=True" providerName="System.Data.SqlClient"
            xdt:Transform="SetAttributes" xdt:Locator="Match(DefaultConnection)"/>
  </connectionStrings>

我有我的web.defaultserver.config

<connectionStrings>
   <add name="DefaultConnection" connectionString="Data Source=.\;Initial Catalog=EverybodyPilates;Integrated Security=true;MultipleActiveResultSets=True" providerName="System.Data.SqlClient"
      xdt:Transform="SetAttributes" xdt:Locator="Match(DefaultConnection)" />
  </connectionStrings>

当我运行迁移时:

> Update-Database -Force -Verbose

它挂了好久了,因为它似乎找不到我的连接字符串。 我是否在正确配置Web?

还是我有其他不正确的地方?

有趣的是,它挂起而不是返回错误。 默认情况下,它将从启动项目中提取连接信息。 您可以手动指定项目:

Update-Database –SourceMigration $InitialDatabase -ProjectName ProjectWithMigrations -StartUpProjectName WebApp

您还可以强制上下文使用该连接字符串,默认情况下,它将根据上下文名称查找带有的连接字符串。

public class MyContext : DbContext
{
    static MyContext()
    {

    }

    public MyContext()
        : base("Name=DefaultConnection")
    {

    }
}

如果以上方法均无济于事,您可以尝试右键单击Web应用程序并选择“发布”,然后在“调试”构建配置中进行简单的文件系统发布,然后手动检查web.config以查看其是否正确转换,甚至将其扔到wwwroot中,如果存在连接字符串问题,则应获得一个例外。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM