LnskyDB是基于Dapper的Lambda扩展,支持按时间分库分表,也可以自定义分库分表方法.而且可以T4生成实体类免去手写实体类的烦恼.

文档地址: https://liningit.github.io/LnskyDB/

开源地址: https://github.com/liningit/LnskyDB

nuget地址: https://www.nuget.org/packages/LnskyDB/

仓储

仓储的获取有两种方式一种是调用RepositoryFactory.Create<T>()方法创建,还有一种是创建仓储类继承Repository<T>.如果需要接口也可以创建接口继承IRepository<T>.CommandTimeout可以设置查询超时时间

实体类

创建实体类需继承BaseDBModel,并且实现里面的抽象方法

1.主键配置

GetDBModel_PKCols()返回表的主键名称,必须. 示例:

private static ImmutableList<string> _DBModel_PKCols = ImmutableList.Create("SysNo");
public override ImmutableList<string> GetDBModel_PKCols() => _DBModel_PKCols;

2.自增列配置

GetDBModel_IncrementCol(); SetIncrementValue(int value)返回表的自增列,以及设置自增列值,如有自增列则必须. 示例:

public override string GetDBModel_IncrementCol() => "Id";
public override void SetIncrementValue(int value)
{Id = value;
}

3.库名表名配置

GetDBModel_TableName() GetDBModel_DBName()返回表名及库名,必须.如果是分库分表则后面待{0}.示例:

public override string GetDBModel_TableName() => "Purify_ProductSaleByDay{0}";
public override string GetDBModel_DBName() => "Lnsky{0}";

4.分库分表配置

GetShuffledModel()SetShuffledData(object obj)返回分库分表对象,及实现设置分库分表值.示例:

错误日志

DBTool.Error事件,当执行sql发生异常会触发DBTool.Error事件

T4模版生成

项目'LnskyDB.Demo'中的T4目录下有T4自动生成实体类的代码.大家可以根据自己的实际情况进行修改配置

  1. ConnectionString表示连接字符串

  2. Database是表示数据库实际名称

  3. DatabaseName是表示存储在'appsettings.json'中的名称

  4. TableNames表示要生成那些表表示全部Name_表示前缀是Name_的

  5. ExcludeTableName表示要排除那些表

  6. ShuffledConfigs表示分库分表配置存储表名,ShuffledConfig的键值对形式

  7. ShuffledConfig分库分表具体配置ShuffledData根据那一列分库分表,MinShuffledTempDate表示最小值

'Entity.tt'是生成实体,仓储及仓储接口的实际代码.大家可以根据自己项目的实际情况修改

基于Dapper的开源Lambda扩展,且支持分库分表自动生成实体之基础介绍相关推荐

  1. 基于Dapper的开源Lambda扩展,且支持分库分表自动生成实体之基础

    LnskyDB是基于Dapper的Lambda扩展,支持按时间分库分表,也可以自定义分库分表方法.而且可以T4生成实体类免去手写实体类的烦恼. 文档地址: https://liningit.githu ...

  2. 基于Dapper的开源Lambda扩展,且支持分库分表自动生成实体

    LnskyDB是基于Dapper的Lambda扩展,支持按时间分库分表,也可以自定义分库分表方法 开源地址 https://github.com/liningit/LnskyDB 在此非常感谢SkyC ...

  3. list mybatis 接收 类型_基于mybatis拦截器实现的一款简易影子表自动切换插件

    近期因工作需要,小编基于mybatis拦截器开发了一款简易影子表自动切换插件,可以根据配置实现动态修改表名,即将对原source table表的操作自动切换到对target table表的操作.该插件 ...

  4. Mybatis-Plus 支持分库分表了?-官方神器发布!

    欢迎关注方志朋的博客,回复"666"获面试宝典 今天介绍一个 MyBatis - Plus 官方发布的神器:mybatis-mate 为 mp 企业级模块,支持分库分表,数据审计. ...

  5. Dapper.Common基于Dapper的开源LINQ超轻量扩展

    Dapper.Common Dapper.Common是基于Dapper的LINQ实现,支持.net core,遵循Linq语法规则.链式调用.配置简单.上手快,支持Mysql,Sqlserver(目 ...

  6. dapper mysql 拓展_Dapper.Common基于Dapper的开源LINQ超轻量扩展

    Dapper.Common Dapper.Common是基于Dapper的LINQ实现,支持.net core,遵循Linq语法规则.链式调用.配置简单.上手快,支持Mysql,Sqlserver(目 ...

  7. Postgres-XL:基于PostgreSQL的开源可扩展数据库集群

    2019独角兽企业重金招聘Python工程师标准>>> 最近这一年业界去"IOE"越叫越响,很多传统企业也把去"IOE"计划摆上了桌面.我老是 ...

  8. mysql分库分表中间件6_当当开源sharding-jdbc,轻量级数据库分库分表中间件

    近期,当当开源了数据库分库分表中间件sharding-jdbc. Sharding-JDBC是当当应用框架ddframe中,从关系型数据库模块dd-rdb中分离出来的数据库水平分片框架,实现透明化数据 ...

  9. 当当网mysql分库分表策略_当当开源sharding-jdbc,轻量级数据库分库分表中间件

    近期,当当开源了数据库分库分表中间件sharding-jdbc. Sharding-JDBC是当当应用框架ddframe中,从关系型数据库模块dd-rdb中分离出来的数据库水平分片框架,实现透明化数据 ...

最新文章

  1. linux内核定义的常用信号6,Linux中的信号
  2. (每日一题)P1447 [NOI2010] 能量采集(莫反套路 + 欧拉反演 / 容斥原理)
  3. 怎么看c语言错误出在哪,请各位大佬帮我看看错误出在哪里
  4. 使用Java connector消费ABAP系统的函数
  5. jdk jre jvm 关系
  6. Leetcode39.Combination Sum组合总和
  7. 被遮挡的绝对定位 z-index
  8. ClickHouse的特性及读写
  9. 配置Debian11服务器允许root用户远程SSH登录
  10. PHP RSS/Feed 生成类库(支持RSS 1.0/2.0和ATOM)
  11. 最近几天,VirtualBox虚拟机坏了多次,备份很重要
  12. 服务器dell/hp/ibm硬件检测工具
  13. java俄罗斯方块程序_java基础俄罗斯方块
  14. 搭建STM32的开发环境
  15. docker搭建wekan及注册备份维护
  16. 【马仔创业感悟】什么是初创公司
  17. 背单词APP测试与评估(百词斩vs扇贝)
  18. 四分位距IQR interquartile range
  19. html怎么设置div只读,html怎么设置只读状态
  20. 实验七 磁盘调度算法的模拟与实现

热门文章

  1. 开发Teams的messaging extension
  2. macbook 下载时睡眠_MacBook进入睡眠状态时如何自动使其静音
  3. 【Android】RxJava的使用(四)线程控制 —— Scheduler
  4. CodeForces - 1059D(二分+误差)
  5. 二 面向对象三大特性
  6. java集合学习笔记 ---Collections类对集合的处理
  7. Cowboy 源码分析(十八)
  8. NCC CAP 6.0 发布 —— 新增支持 OpenTelemetry
  9. Dapr牵手.NET学习笔记:想入非非的服务调用
  10. JWT:我应该使用哪种签名算法?