LnskyDB是基于Dapper的LINQ扩展,支持按时间分库分表,也可以自定义分库分表方法.而且可以T4生成实体类免去手写实体类的烦恼.
文档地址: https://liningit.github.io/LnskyDB/
开源地址: https://github.com/liningit/LnskyDB
nuget地址:
https://www.nuget.org/packages/LnskyDB/
https://www.nuget.org/packages/LnskyDB.MsSql/
https://www.nuget.org/packages/LnskyDB.MySql/
在此非常感谢SkyChenSky其中lambda表达式的解析参考了他的开源项目
Lambda表达式查询方便
基于Dapper的Lambda表达式扩展可以方便的进行查询筛选操作
支持分库分表
默认支持按年分库按月分表,也支持自定义分库分表.从此大数据不用愁
T4自动生成实体
有T4模板自动生成实体类,再也不用手写那些烦人的实体类了.仓储类及接口也支持自动生成
使用门槛低,快速上手
使用非常简单,可以快速上手
MIT license.
我们需要知道你对LnskyDB的一些看法以及建议:
仓储的获取有两种方式一种是调用RepositoryFactory.Create
方法创建,还有一种是创建仓储类继承Repository
.如果需要接口也可以创建接口继承IRepository
.
仓储中的CommandTimeout
可以设置查询超时时间
创建实体类需继承BaseDBModel
,并且实现里面的抽象方法
GetDBModel_PKCols()
返回表的主键名称,必须. 示例:
private static ImmutableList<string> _DBModel_PKCols = ImmutableList.Create("SysNo");
public override ImmutableList<string> GetDBModel_PKCols() => _DBModel_PKCols;
GetDBModel_IncrementCol();
SetIncrementValue(int value)
返回表的自增列,以及设置自增列值,如有自增列则必须. 示例:
public override string GetDBModel_IncrementCol() => "Id";
public override void SetIncrementValue(int value)
{
Id = value;
}
GetDBModel_TableName()
GetDBModel_DBName()
返回表名及库名,必须.如果是分库分表则后面待{0}.示例:
public override string GetDBModel_TableName() => "Purify_ProductSaleByDay{0}";
public override string GetDBModel_DBName() => "Lnsky{0}";
GetShuffledModel()
SetShuffledData(object obj)
返回分库分表对象,及实现设置分库分表值.示例:
public override ShuffledModel GetShuffledModel()
{
if (DBModel_ShuffledTempDate == DateTime.MinValue)
{
throw new NoShuffledException(GetDBModel_TableName(), "分库分表时间,ShuffledTempDate");
}
return ShuffledByDbTable(DBModel_ShuffledTempDate);
}
DateTime _DBModel_ShuffledTempDate;
[JsonIgnore]
public DateTime DBModel_ShuffledTempDate { get { return StatisticalDate != DateTime.MinValue ? StatisticalDate : _DBModel_ShuffledTempDate; } set { _DBModel_ShuffledTempDate = value; } }
public override void SetShuffledData(object obj) { DBModel_ShuffledTempDate = (DateTime)obj; }
GetDBModel_SqlProvider()
返回数据库提供程序返回MsSqlProvider
或MySqlProvider
DBTool.Error
事件,当执行sql发生异常会触发DBTool.Error
事件
项目’LnskyDB.Demo’中的T4目录下有T4自动生成实体类的代码.大家可以根据自己的实际情况进行修改配置
'DbHelper.ttinclude’中的’Config.DbConfigs’是用来编写生成配置的
'Entity.tt’是生成实体,仓储及仓储接口的实际代码.大家可以根据自己项目的实际情况修改