如何动态更改每个API的连接字符串调用

问题描述:

我是使用API​​的新手,但根据我的理解,我创建了一个名为DataRepository和IDataRepository的2个类的服务文件夹。 DataRepository类与DataContext类交互。但是,我的Connection字符串不在DataContext类中,而是在Startup类中。我希望能够动态更改连接字符串的原因是因为我有许多相同数据库的实例。每个代表不同的数据。现在的问题是如何通过每个webapi调用动态设置连接字符串?我打算在每次调用时都获取连接字符串参数。如何动态更改每个API的连接字符串调用

+0

从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 
} 

林不知道这是否是最好的办法。我希望这有帮助。