簡體   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