如何动态地告诉.NETMVC应用程序指向哪个数据源?

如何动态地告诉.NETMVC应用程序指向哪个数据源?,.net,asp.net-mvc,.net,Asp.net Mvc,我开始将现有ColdFusion应用程序的一个端口连接到.NET MVC,我遇到的第一个问题是,在ColdFusion中,我们使用这样一个事实,即您可以定义多个数据源,并以动态方式访问它们,以便特定的用户可以指向特定的数据库 举个例子,我可能有两个数据库,Foo和Bar,每个数据库都有一个名为Locations的表,该表存储特定于该数据库的位置。数据库保证有相同的表,所以这不成问题 在ColdFusion中,您可以轻松地将用户动态指向特定的数据源,因为它只是通过ColdFusion管理员配置的字

我开始将现有ColdFusion应用程序的一个端口连接到.NET MVC,我遇到的第一个问题是,在ColdFusion中,我们使用这样一个事实,即您可以定义多个数据源,并以动态方式访问它们,以便特定的用户可以指向特定的数据库

举个例子,我可能有两个数据库,Foo和Bar,每个数据库都有一个名为Locations的表,该表存储特定于该数据库的位置。数据库保证有相同的表,所以这不成问题

在ColdFusion中,您可以轻松地将用户动态指向特定的数据源,因为它只是通过ColdFusion管理员配置的字符串(或者您可以通过编程修改XML文件)

所以问题是如何在.NET中实现这一点


具体来说,我想我真的很想使用实体框架来利用它提供的ORM支持来对数据库中的数据执行操作,但我不确定如何做到这一点(希望这是可能的)。有什么想法吗?

您可以轻松地将连接字符串传递给实体框架的数据上下文结构

var context = new MyDataContext(dynamicConnectionString);

当然,这假设您连接到的每个数据源都具有相同的精确模式;-)

创建EF模型时,将在名为ConnectionString的配置部分的Web.config中添加一个条目。如果您不需要按照Joel的建议在运行时更改数据库,那么您也可以编辑它以指向不同的数据库