基于Dapper的开源Lambda扩展,且支持分库分表自动生成实体之基础介绍
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自动生成实体类的代码.大家可以根据自己的实际情况进行修改配置
ConnectionString表示连接字符串
Database是表示数据库实际名称
DatabaseName是表示存储在'appsettings.json'中的名称
TableNames表示要生成那些表表示全部Name_表示前缀是Name_的
ExcludeTableName表示要排除那些表
ShuffledConfigs表示分库分表配置存储表名,ShuffledConfig的键值对形式
ShuffledConfig分库分表具体配置ShuffledData根据那一列分库分表,MinShuffledTempDate表示最小值
'Entity.tt'是生成实体,仓储及仓储接口的实际代码.大家可以根据自己项目的实际情况修改
基于Dapper的开源Lambda扩展,且支持分库分表自动生成实体之基础介绍相关推荐
- 基于Dapper的开源Lambda扩展,且支持分库分表自动生成实体之基础
LnskyDB是基于Dapper的Lambda扩展,支持按时间分库分表,也可以自定义分库分表方法.而且可以T4生成实体类免去手写实体类的烦恼. 文档地址: https://liningit.githu ...
- 基于Dapper的开源Lambda扩展,且支持分库分表自动生成实体
LnskyDB是基于Dapper的Lambda扩展,支持按时间分库分表,也可以自定义分库分表方法 开源地址 https://github.com/liningit/LnskyDB 在此非常感谢SkyC ...
- list mybatis 接收 类型_基于mybatis拦截器实现的一款简易影子表自动切换插件
近期因工作需要,小编基于mybatis拦截器开发了一款简易影子表自动切换插件,可以根据配置实现动态修改表名,即将对原source table表的操作自动切换到对target table表的操作.该插件 ...
- Mybatis-Plus 支持分库分表了?-官方神器发布!
欢迎关注方志朋的博客,回复"666"获面试宝典 今天介绍一个 MyBatis - Plus 官方发布的神器:mybatis-mate 为 mp 企业级模块,支持分库分表,数据审计. ...
- Dapper.Common基于Dapper的开源LINQ超轻量扩展
Dapper.Common Dapper.Common是基于Dapper的LINQ实现,支持.net core,遵循Linq语法规则.链式调用.配置简单.上手快,支持Mysql,Sqlserver(目 ...
- dapper mysql 拓展_Dapper.Common基于Dapper的开源LINQ超轻量扩展
Dapper.Common Dapper.Common是基于Dapper的LINQ实现,支持.net core,遵循Linq语法规则.链式调用.配置简单.上手快,支持Mysql,Sqlserver(目 ...
- Postgres-XL:基于PostgreSQL的开源可扩展数据库集群
2019独角兽企业重金招聘Python工程师标准>>> 最近这一年业界去"IOE"越叫越响,很多传统企业也把去"IOE"计划摆上了桌面.我老是 ...
- mysql分库分表中间件6_当当开源sharding-jdbc,轻量级数据库分库分表中间件
近期,当当开源了数据库分库分表中间件sharding-jdbc. Sharding-JDBC是当当应用框架ddframe中,从关系型数据库模块dd-rdb中分离出来的数据库水平分片框架,实现透明化数据 ...
- 当当网mysql分库分表策略_当当开源sharding-jdbc,轻量级数据库分库分表中间件
近期,当当开源了数据库分库分表中间件sharding-jdbc. Sharding-JDBC是当当应用框架ddframe中,从关系型数据库模块dd-rdb中分离出来的数据库水平分片框架,实现透明化数据 ...
最新文章
- linux内核定义的常用信号6,Linux中的信号
- (每日一题)P1447 [NOI2010] 能量采集(莫反套路 + 欧拉反演 / 容斥原理)
- 怎么看c语言错误出在哪,请各位大佬帮我看看错误出在哪里
- 使用Java connector消费ABAP系统的函数
- jdk jre jvm 关系
- Leetcode39.Combination Sum组合总和
- 被遮挡的绝对定位 z-index
- ClickHouse的特性及读写
- 配置Debian11服务器允许root用户远程SSH登录
- PHP RSS/Feed 生成类库(支持RSS 1.0/2.0和ATOM)
- 最近几天,VirtualBox虚拟机坏了多次,备份很重要
- 服务器dell/hp/ibm硬件检测工具
- java俄罗斯方块程序_java基础俄罗斯方块
- 搭建STM32的开发环境
- docker搭建wekan及注册备份维护
- 【马仔创业感悟】什么是初创公司
- 背单词APP测试与评估(百词斩vs扇贝)
- 四分位距IQR interquartile range
- html怎么设置div只读,html怎么设置只读状态
- 实验七 磁盘调度算法的模拟与实现
热门文章
- 开发Teams的messaging extension
- macbook 下载时睡眠_MacBook进入睡眠状态时如何自动使其静音
- 【Android】RxJava的使用(四)线程控制 —— Scheduler
- CodeForces - 1059D(二分+误差)
- 二 面向对象三大特性
- java集合学习笔记 ---Collections类对集合的处理
- Cowboy 源码分析(十八)
- NCC CAP 6.0 发布 —— 新增支持 OpenTelemetry
- Dapr牵手.NET学习笔记:想入非非的服务调用
- JWT:我应该使用哪种签名算法?