如何在运行时使用EF 4.1代码优先配置数据库连接

本文关键字:代码 数据库连接 配置 EF 运行时 | 更新日期: 2023-09-27 18:03:10

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

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

我可以操纵什么对象/属性来控制DbContext的DB设置?

如何在运行时使用EF 4.1代码优先配置数据库连接

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

我在我的一个应用程序中做过这样的事情:

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

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

我不确定在这种情况下是否使用了"DatabaseName"参数,因为它无论如何都在连接字符串中。为了确定,我已经确保它们是相同的