2日経って、やっと動くようになりました。将来誰かに役立つことを期待して、ここに私のソリューションを追加しています。
環境
- Azure API APP (ただし、理論的には、他の種類のプロジェクトでも機能するはずです)
- SQL DB (Azure でホスト)。明らかに任意のデータベースにすることができます
- EF 6.0 - データベース ファースト アプローチ
- 接続文字列は、Azure の [アプリケーションの設定] -> [接続文字列] セクションに保存されます。以下に示す画像

私がやりたかったこと
は、接続文字列を Azure に配置し、@Sandrino Di Mattia が述べたように、そこから動的に取得することでした。
私のために働いたステップ
- web.config で connectionStrings を作成します。
`
<connectionStrings>
<add name="dbConnectionStringForAzure" connectionString="Local Connection String" providerName="System.Data.EntityClient"/>
</connectionStrings>
`
providerName はSystem.Data.EntityClientであり、 System.Data.SqlClientではないことに注意してください。
補足:また、プロジェクトを発行したら、web.config.xml で接続文字列を確認できます。projectapiurl.scm.azurewebsites.net に移動します。
[メニュー] -> [デバッグ コンソール] -> [PowerShell] -> [Web.config ファイルの編集] に移動します。(web.config ファイルを取得する方法は他にもあります。お好みの方法を使用してください。)
注:ここでは、Azure によって自動生成された別の接続文字列が見つかる場合があります。使用していないので削除しても問題ありません。
Azure -> プロジェクトとアプリケーションの設定に移動します。以下に示すように詳細を追加します。
名前 =dbConnectionStringForAzure
値 =Provider=System.Data.SqlClient; metadata=res://*/csdlModel.csdl|res://*/ssdlModel.ssdl|res://*/mslModel.msl; Provider Connection String ='Data Source=server.database.windows.net,1433;initial catalog=database;User ID=username;Password=password;MultipleActiveResultSets=True;App=EntityFramework;'
3 番目のドロップダウンの前面で、CUSTOM を選択します。そうしないと、Azure が接続文字列のプロバイダー名に System.Data.SqlClient (または選択内容に応じて他のプロバイダー) を追加することが重要になりますが、これは望ましくありません。
- 保存
この段階で、Azure は実行時にこの接続文字列を使用する必要があります。確認したい!? 上記の @Sandrino Di Mattia または @Shaun Luttin によるこの SO 投稿で提案されていることと同様のことを行います C#.NET を使用して Windows Azure Web サイトにリンクされている SQL Azure データベースの接続文字列を取得します。
または、次のコードをかみそりテンプレートに入れます。
<p>Value of dbConnectionStringForAzure :
@System.Configuration.ConfigurationManager.ConnectionStrings["dbConnectionStringForAzure"].ConnectionString
</p>
一方、DbContext コンストラクターで接続文字列名を設定しました。
public MyEntities() : base("name=dbConnectionStringForAzure")
{
}
ここで、API を呼び出すと、Azure に保存されている接続が動的に使用されました。
数十の投稿と追加のコーヒーのショットに感謝します!