从Role.OnStart()生成的线程的EF使用

时间:2012-04-14 10:26:43

标签: entity-framework azure

我正在使用EF代码优先管理我的数据库连接,并在web.config中声明了一个显式连接字符串。我想安排一些数据库清理过程(比如每天删除测试事务),所以我从Role.OnStart()中生成一个线程,并在实例之间进行适当的并发管理。

但是我得到了DB数据库异常,比如数据库与我的模型不匹配,而我确信它确实存在(从应用程序“内部”使用的相同代码效果很好)。所以我的猜测是没有从线程中使用web.config,所以EF可能使用默认的连接字符串。

从那里使用我的连接字符串的最佳方法是什么?

由于

1 个答案:

答案 0 :(得分:4)

OnStart方法不会在与Web应用程序相同的进程中运行,这意味着它不会使用web.config。我建议您将连接字符串存储在服务配置中,并在初始化上下文时从此处读取它。

另一个优点是您无需重新部署应用程序即可更改设置。