【问题标题】:How to configure DB connection at run time with EF 4.1 Code First如何使用 EF 4.1 Code First 在运行时配置数据库连接
【发布时间】:2011-07-22 06:40:33
【问题描述】:
我正在尝试将 EF 4.1 与 Code First POCO 对象一起用于旧数据库。我有许多相似的数据库,它们都具有相同的架构,我需要决定在运行时连接到哪一个。
我见过的所有示例都将您的连接字符串放在 App.config 或 Web.config 中。这对我不起作用,因为我需要动态行为。
我可以操纵哪些对象/属性来控制我的 DbContext 的数据库设置?
【问题讨论】:
标签:
c#
entity-framework
ef-code-first
【解决方案1】:
DBContext 有一个接受 DbConnection 实例的构造函数,您可以使用适当的工厂类启动它。
我在我的一个应用中做这种事情:
_context = new MyDbContext(
new SqlConnectionFactory(Properties.Settings.Default.MyConnectionString)
.CreateConnection("DatabaseName"));
所以我可以在运行时读取连接字符串并将其传递给SqlConnectionFactory 类,这将为我提供一个使用它的新连接。
我不确定在这种情况下是否使用了“DatabaseName”参数,因为它无论如何都在连接字符串中。可以肯定的是,我已经确定它们是相同的。