SmartSql使用教程(4)——多库配置与使用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SmartSql使⽤教程(4)——多库配置与使⽤
⼀、引⾔
已经⼏个⽉没更新了。

本来上⼀章的预告是准备写TypeHandler的相关特性的。

但是在准备的时候。

SmartSql的作者重构了⼀下TypeHandler,使得我⼀下⼦没搞懂TypeHandler的原理,所以⼀直没有下⼿来写这⼀章。

但最近群⾥(qq群:604762592)有好⼏个⼩伙伴在问多库配置的问题。

就先写⼀下关于这个问题的东西吧。

关于多库的场景在这⾥就不多概述了,想必⼤家都或多或少做过此类项⽬。

我就直接进⼊主题,说⼀下关于SmartSql下单个项⽬中多数据库的配置和使⽤。

⼆、项⽬结构
上图是这次项⽬的结构,分为Api,2个仓储项⽬,⼀个实体项⽬。

在Api的项⽬中。

原来我们只需要⼀个SmartSqlMapConfig。

⽽这个项⽬中有3个,分别对应了3个数据库。

在Maps的⽂件夹中分了3⽂件夹,也是分别对应了3个数据库。

仓储分为两个项⽬是想展⽰⼀下在多库场景下仓储的多种配置⽅法。

三、注册SmartSql实例
这是Startup中关于注册SmartSql实例的代码,分别注册了3个库的。

这⾥需要注意以下⼏点:
1. 在多实例下,每个实例都需要对其进⾏别名配置。

⽅法如上图,使⽤UseAlias⽅法。

2. 多实例意味着多个SmartSqlMapConfig,所以同样需要使⽤UseXmlConfig⽅法配置指定的配置⽂件。

3. 在配置动态仓储时,除了配置指定的程序集外,还需要指定仓储使⽤的SmartSql实例的别名。

4. 在通⽤库和⽤户库这⾥,多了⼀个Filter的委托,⽤户过滤仓储接⼝。

四、多实例的使⽤
划重点:
1.如果使⽤仓储,那在这⾥和单库的使⽤没有任何区别。

因为在注册的地⽅已经配置好了。

2. 如果使⽤SqlMap,就需要在获取SqlMap实例的时候,使⽤别名来获取了。

serviceProvider.GetSmartSql("Product").SqlMapper;
3. 其他的使⽤与单库没有区别
四、结语
好了。

多库的基本配置就说到这⾥。

希望⼤家下载Demo来好好品味⼀下。

这次就不做预告了。

我接下来会按照交流群中提问⽐较多的
问题来更新。

相关文档
最新文档