2012-04-14 61 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