2012-04-14 80 views
1

我使用EF代碼優先來管理我的數據庫連接,在web.config中宣佈一個明確的連接字符串從Role.OnStart催生。我想安排一些數據庫清理過程(比如每天刪除測試事務),所以我從Role.OnStart()生成一個線程,並在這些實例之間進行適當的併發管理。EF使用()

但是我卻越來越DB數據庫例外,如DB不匹配我的模型,而我敢肯定它(從「內部」的應用效果很好使用相同的代碼)。所以我的猜測是web.config沒有在線程中使用,所以EF可能使用默認的連接字符串。

從那裏使用我的連接字符串的最佳方式是什麼?

感謝

回答

4

OnStart方法不能在同一進程作爲Web應用程序這意味着它不會使用在web.config中運行。我建議你將連接字符串存儲在服務配置中,並在初始化你的上下文時從這裏讀取它。

另一個優點是,您可以在不重新部署應用程序的情況下更改設置。

+0

沒錯這就是我目前正在實施什麼(調用自定義的DbContext構造函數中的DbContext構造函數和傳遞來自RoleEnvironment檢索的connectionString使其成爲應用程序的其餘部分完全透明的,順便說一句)。我只是想知道是否有方法從角色過程中使用web.config ...謝謝。 – ThomasWeiss 2012-04-14 12:56:14