• 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来好好品味一下。这次就不做预告了。我接下来会按照交流群中提问比较多的问题来更新。

    示例代码链接在这里

  • 相关阅读:
    在调试asp.net程序时,提示windows窗体身份验证错误怎么办
    关于用css数字与汉字的垂直对其问题
    如何在存储过程中使用like操作符
    iframe的页面内容如何获取父页面的地址
    Visual Studio 2005常用插件搜罗(zz)
    如何通过javascript动态改变按钮的css属性值
    双十一数据库也疯狂,SQL Server 无法生成 FRunCM 线程,求解
    Oracle 连接玩我!ORA12514及ORA28547错误解决
    ASP.NET MVC Web API 学习笔记第一个Web API程序
    SQL Server数据库同步问题分享(三)创建订阅
  • 原文地址:https://www.cnblogs.com/noahji/p/11304169.html
Copyright © 2020-2023  润新知