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

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

作者:互联网

我试图将EF 4.1与Code First POCO对象一起用于旧数据库.我有许多相似的数据库,它们都具有相同的架构,我需要确定在运行时要连接到哪个数据库.

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

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

解决方法:

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

我在其中一个应用程序中执行以下操作:

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

因此,我可以在运行时读取连接字符串并将其传递给SqlConnectionFactory类,这将为我提供一个使用该连接的新连接.

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

标签:ef-code-first,c,entity-framework
来源: https://codeday.me/bug/20191208/2089234.html