如何/在哪里我在运行时覆盖app.config ConnectionString?

时间:2012-04-13 12:41:18

标签: wpf sqlite ef-code-first

我正在使用Entity Framework 4.1 Code First,Sqlite和WPF。

我想将app.config ConnectionString重新定义为sqlite,因此我可以在运行时定义数据源(Sqlite数据库文件的路径)

我的猜测是使用EntityConnectionStringBuilder来创建连接字符串。但我不知道我构建的事件是什么,并分配连接字符串,因此EF Code First将检测更改并将在应用程序的所有代码中使用较新的ConnectionString(而不是使用app.config ConnectionString)。我想它会放在Application_Startup事件上,但我不知道这是不是最好的实践。

提前谢谢。

2 个答案:

答案 0 :(得分:2)

如果这就是你想要的,

您可以通过DbContext(string)构造函数在运行时传递字符串 - 有关详细信息,请参阅此处DbContext(string)

您还可以使您的上下文实现获取该参数并将其传递给base DbContext。

希望这会有所帮助

答案 1 :(得分:0)

如果您使用的是EF 4.1 CF,那么一旦您生成* .edmx文件,它应该自动创建您的app.config。您不需要创建自己的app.config,也可以在有现有app.config时进行更改。