使用EF 4.1/DbContext基于环境切换连接字符串

Pet*_*ete 4 entity-framework-4.1

我已经看过几个关于此的帖子,但是无法从响应中创建可用的解决方案.也许是由于缺乏了解.

提供的托管要求在登台和生产时使用相同的代码库,包括连接字符串.

如何切换DbContext的连接字符串?

我知道我可以这样做:

public FooEntities() : base("ApplicationServices") { }
Run Code Online (Sandbox Code Playgroud)

但这不是动态的 - 它只是在运行时设置它.

那么我如何在运行时实际选择连接字符串呢?

Eva*_*acy 5

public FooEntities() : base("ApplicationServices") { }

FooEntities 继承自 ObjectContext

你也可以写

public FooEntities() : base(YourStaticMethodToGetConnectionString()) { }
Run Code Online (Sandbox Code Playgroud)

然后,您可以根据某些环境设置从web.config中提取连接字符串