Asp.net web api 如何在每次API调用时动态更改连接字符串

Asp.net web api 如何在每次API调用时动态更改连接字符串,asp.net-web-api,entity-framework-6,connection-string,Asp.net Web Api,Entity Framework 6,Connection String,我不熟悉使用API,但据我所知,我创建了一个包含两个类的服务文件夹,分别是DataRepository和IDataRepository。DataRepository类与DataContext类交互。但是,我的连接字符串不在DataContext类中,而是在Startup类中。我希望能够动态更改连接字符串的原因是,我有许多相同数据库的实例。每一个都代表了不同领域的数据。现在的问题是如何通过每次webapi调用动态设置连接字符串?我计划在每次调用时获取连接字符串参数。是否使用授权令牌?如果是这样,您

我不熟悉使用API,但据我所知,我创建了一个包含两个类的服务文件夹,分别是DataRepository和IDataRepository。DataRepository类与DataContext类交互。但是,我的连接字符串不在DataContext类中,而是在Startup类中。我希望能够动态更改连接字符串的原因是,我有许多相同数据库的实例。每一个都代表了不同领域的数据。现在的问题是如何通过每次webapi调用动态设置连接字符串?我计划在每次调用时获取连接字符串参数。

是否使用授权令牌?如果是这样,您可以将连接字符串作为声明的一部分。我建议不要将整个连接字符串放在参数中。如果您想要一种更简单的方法,您可以使用一个字符串参数,它可以告诉您应该使用哪种类型的db, 前

公共异步任务youApi(字符串类型){
//然后,您可以使用switch语句来知道它将转到哪个数据库
字符串连接字符串=”;
开关(类型)
案例“数据库1”:
connectionString=“datasrc=database1”;
//等等
}

我不确定这是否是最好的方法。我希望这会有所帮助。

从API调用获取连接字符串是一种糟糕的做法。相反,您可以使用依赖项注入来解析具有每个控制器所需的连接字符串的datacontext。
public async Task<IHttpActionResult> youApi(string type){
   //then you can have a switch statement to know what database it will go to
  string connectionString= "";    
  switch(type)
  case "database1": 
      connectionString = "datasrc=database1"; 
   //and so on
}