我正在尝试将EF 4.1与Code First POCO对象一起用于旧数据库。我有许多类似的数据库都具有相同的模式,我需要决定在运行时连接哪一个。
我看到的所有示例都显示将您的连接字符串放在App.config或Web.config中。这对我来说不起作用,因为我需要动态行为。
我可以操作哪些对象/属性来控制DbContext的数据库设置?
答案 0 :(得分:3)
DBContext有一个构造函数,它接受一个DbConnection实例,你可以使用适当的工厂类来启动它。
我在我的一个应用程序中执行此类操作:
_context = new MyDbContext(
new SqlConnectionFactory(Properties.Settings.Default.MyConnectionString)
.CreateConnection("DatabaseName"));
所以我可以在运行时读取连接字符串并将其传递给SqlConnectionFactory
类,这将为我提供一个新连接。
我不确定在这种情况下是否使用“DatabaseName”参数,因为它仍然在连接字符串中。可以肯定的是,我已经确定它们是相同的。