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

LnskyDB是一个基于Dapper的扩展,支持Lambda表达式并能按时间进行分库分表。它提供仓储创建、查询、添加、更新和删除操作,同时具备多线程处理和实体类T4模板自动生成功能。
摘要由CSDN通过智能技术生成

LnskyDB

LnskyDB是基于Dapper的Lambda扩展,支持按时间分库分表,也可以自定义分库分表方法

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

在此非常感谢SkyChenSky其中lambda表达式的解析参考了他的开源项目

下面是用ProductSaleByDayEntity作为示例,其中StatisticalDate为分库分表字段,如果是对分库分表对象进行数据库操作则必须传入StatisticalDate或者设置DBModel_ShuffledTempDate指定是那个库和表


1. 仓储的创建

仓储的创建有两种方式一种是通过RepositoryFactory.Create<ProductSaleByDayEntity>()创建IRepository<ProductSaleByDayEntity>
还有一种是创建一个仓储类继承Repository<ProductSaleByDayEntity>

public interface IProductSaleByDayRepository : IRepository<ProductSaleByDayEntity>
{
   
}
public class ProductSaleByDayRepository : Repository<ProductSaleByDayEntity>
{
   
}
//调用的地方可以
IProductSaleByDayRepository repository=new ProductSaleByDayRepository();
2. 查询

2.1 根据主键查询

var repository = RepositoryFactory.Create<ProductSaleByDayEntity>();
var entity = repository.Get(new ProductSaleByDayEntity
{
   
    DBModel_ShuffledTempDate = new DateTime(2019, 01, 01),//这儿表示差19年1月的库和表
    SysNo = sysNo
});

2.2 根据where条件查询

var stTime = new DateTime(2019, 1, 15);
var endTime = new DateTime(2019, 2, 11);
var repository = RepositoryFactory.Create<ProductSaleByDayEntity>();
var query = QueryFactory.Create<ProductSaleByDayEntity>(m => m.ShopName.Contains("测试"));
query.And(m => m.StatisticalDate >= stTime);
query.And(m => m.StatisticalDate < endTime.Date.AddDays(1));
query.OrderByDescing(m => m.StatisticalDate);//如果是查多个库表必须按分库分表的字段降序排列
query.StarSize = 20; //可以设置查询行数及开始行数
query.Rows = 10;
//分库的传入stTime,endTime会自动根据时间查询符合条件的库和表
var lst = repository.GetList(query, stTime, endTime);

如果可以确定统计时间也可以查指定的库表进行单表查询

var stTime 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值