首页 新闻 会员 周边

asp.net core 多个数据库

0
悬赏园豆:20 [已解决问题] 解决于 2018-08-07 10:14

大家好  有个问题想问一下 ;

我的业务 分了好多库,然后每个库的数据表都一样,只是数据不一样。 

我是想Controller 给的参数 来确定 链接字符串 然后把链接字符串传给service  然后service 再穿给dal ;

这样的话 再注入的时候 就需要参数了。  请问 这样做可以吗? 有没有 更好点方式?

马玉溁的主页 马玉溁 | 初学一级 | 园豆:27
提问于:2018-08-07 09:58
< >
分享
最佳答案
0

构造函数注入 IConfiguration ,通过 IConfiguration 从 appsettings.json 中读取不同的连接字符串

public IActionResult Index(IConfiguration configuration)
{
    configuration.GetConnectionString("A");
    return View();
}
收获园豆:20
dudu | 高人七级 |园豆:31003 | 2018-08-07 10:05

好的 那再麻烦问一下 ,那注入 iservice 不能注入了吧 Controller 里 写吗 

如 :string aConnectionStr=  configuration.GetConnectionString("A");

  IUser iuser=new User(aConnectionStr);

马玉溁 | 园豆:27 (初学一级) | 2018-08-07 10:12

@马玉溁: 构造函数可以注入多个接口

dudu | 园豆:31003 (高人七级) | 2018-08-07 10:13

@dudu: 谢谢 大神

马玉溁 | 园豆:27 (初学一级) | 2018-08-07 10:14

@dudu:  我还是不明白 像刚才您说得这种 我再注册service接口得时候 这么做啊?

public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
//services.AddScoped<IPaperService,PaperService>// 这里如何注册接口呢? 

}

马玉溁 | 园豆:27 (初学一级) | 2018-08-07 10:29

@马玉溁: IConfiguration 接口不需要注册,系统自动注册了

dudu | 园豆:31003 (高人七级) | 2018-08-07 10:34

@dudu:  我是像问得是  我自己写得iservice   IPaperService  这个接口如何注册呢? 他得实现是需要传递参数得?

马玉溁 | 园豆:27 (初学一级) | 2018-08-07 10:36

@dudu: 麻烦帮忙  看下 这个问题 。   

马玉溁 | 园豆:27 (初学一级) | 2018-08-07 10:52

@马玉溁: services.AddScoped<IPaperService>(new PaperService(""));

dudu | 园豆:31003 (高人七级) | 2018-08-07 11:03

@dudu:  问题是 业务new PaperService("") 这个参数是数据库链接字符串  。 我刚才问得是 我想  从 Controller  获取参数  然后确定链接哪个 库 现在 从这里注册得话我还不知道连哪个库 。 

马玉溁 | 园豆:27 (初学一级) | 2018-08-07 11:13

@马玉溁: 可以 Controller 中 new PaperService("") 或者使用工厂模式解决这个问题

dudu | 园豆:31003 (高人七级) | 2018-08-07 11:23
其他回答(1)
1

这个问题解决了吗?

霍艳庆 | 园豆:202 (菜鸟二级) | 2018-12-14 16:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册