2012-06-26 23 views
13

CloudConfigurationManagerを使用したいのでAzure設定ファイルを利用できます。私は接続文字列を使用したい私は、Cloud.cscfgに文字列を追加してEntity Framework Contextを設定しました。CloudConfigurationManagerを使用してコンテキスト接続文字列を設定する方法はありますか?

私はこの

public DomainContext() 
    : base("ContextConnectionString") 

これは、Web.configファイル

からContextConnectionStringを取っていたように私のコンテキストを設定して、私はこの

public DomainContext() 
    : base(CloudConfigurationManager.GetSetting("ContextConnectionString")) 

にコンテキストコンストラクタを変更し、それが動作するようになりました。

最初にAzure cscfgを使用するように私のコンテキストコンストラクタにもっとエレガントな方法がありますか?

+0

現在、VSギャラリーには、app.configファイルのコンフィグレーション変換を有効にするVSツールがあります。リンクは次のとおりです。https://visualstudiogallery.msdn.microsoft.com/579d3a78-3bdd-497c-bc21-aa6e6abbc859 –

答えて

10

現時点ではもっと洗練された解決策はありません。実際、これは一ヶ月前に書かなければならなかったよりもかなりエレガントです。 CloudConfigurationManagerは1.7 SDKで新しく追加されたクラスで、以前はこのようなことを行うためのサポートが組み込まれていなかったため作成されました。 CloudConfigurationMangagerが何をしたいのかを知りたい場合は、pretty commonという独自のクラスを作成しなければなりませんでした。

2

コードのサンプルを投稿できますか?

CloudConfigurationManagerは、コードがWindows Azureロールで実行されているかどうかを確認し、そうであればServiceConfiguration.cscfgファイル(ロールとともにデプロイされている)から構成値を取得しようとします。役割で実行されていない場合、CloudConfigurationManagerはアプリケーションの.config(web.configまたはapp.config)ファイルに戻る必要があります。どちらの場合でも、値が見つからない場合はNULLが返されます。

接続文字列を.cscfgファイルから取得すると(コードがWindows Azure Webロールで実行されていることが前提です)、接続文字列を設定するEFコンストラクタのオーバーロードに値を渡すことができます。

関連する問題