2012-04-14 9 views
1

私はDB接続を管理するためにEFコードファーストを使用しており、web.configで明示的に指定された接続文字列を使用しています。いくつかのDBクリーニングプロセス(毎日のテストトランザクションの削除など)をスケジュールしたいので、インスタンス間の適切な並行性管理を使ってRole.OnStart()からスレッドを生成しています。Role.OnStart()から生成されたスレッドからのEF使用

しかし、私のモデルと一致しないDBのようなDBデータベース例外が発生していますが、確かにそうです(アプリケーション内部で使用されているものと同じコード)。だから私の推測では、Web.configはスレッドから使​​用されないので、EFはおそらくデフォルトの接続文字列を使用します。

ここから接続文字列を使用するにはどうすればよいでしょうか?

おかげ

答えて

4

のOnStartメソッドはweb.configファイルを使用しないという意味あなたのWebアプリケーションと同じプロセスで実行されません。コンテキストを初期化するときに、サービス構成に接続文字列を格納し、ここから読み込むことをお勧めします。

その他の利点は、アプリケーションを再デプロイせずに設定を変更することです。

+0

これは私が現在実装しているものです(カスタムDbContextコンストラクタでDbContextコンストラクタを呼び出し、RoleEnvironmentから取得したconnectionStringを渡すことで、残りのアプリケーション(btw)は完全に透過的になります)。私はロールプロセスからweb.configを使用する方法があるのか​​どうか疑問に思っていた...ありがとう。 – ThomasWeiss

関連する問題