如何使用EF 4.1 Code First在运行时配置数据库连接

时间:2011-07-21 22:33:28

标签: c# entity-framework ef-code-first

我正在尝试将EF 4.1与Code First POCO对象一起用于旧数据库。我有许多类似的数据库都具有相同的模式,我需要决定在运行时连接哪一个。

我看到的所有示例都显示将您的连接字符串放在App.config或Web.config中。这对我来说不起作用,因为我需要动态行为。

我可以操作哪些对象/属性来控制DbContext的数据库设置?

1 个答案:

答案 0 :(得分:3)

DBContext有一个构造函数,它接受一个DbConnection实例,你可以使用适当的工厂类来启动它。

我在我的一个应用程序中执行此类操作:

_context = new MyDbContext(
    new SqlConnectionFactory(Properties.Settings.Default.MyConnectionString)
        .CreateConnection("DatabaseName"));

所以我可以在运行时读取连接字符串并将其传递给SqlConnectionFactory类,这将为我提供一个新连接。

我不确定在这种情况下是否使用“DatabaseName”参数,因为它仍然在连接字符串中。可以肯定的是,我已经确定它们是相同的。