基于Dapper的开源Lambda扩展,且支持分库分表自动生成实体之基础
LnskyDB是基于Dapper的Lambda擴展,支持按時間分庫分表,也可以自定義分庫分表方法.而且可以T4生成實體類免去手寫實體類的煩惱.
文檔地址:?https://liningit.github.io/LnskyDB/
開源地址:?https://github.com/liningit/LnskyDB
nuget地址:?https://www.nuget.org/packages/LnskyDB/
前面我們介紹了LnskyDB的增刪改查操作,接下來我們結束幾個基礎類.倉儲及實體類還有T4如何生成實體
倉儲
倉儲的獲取有兩種方式一種是調用RepositoryFactory.Create<T>()方法創建,還有一種是創建倉儲類繼承Repository<T>.如果需要接口也可以創建接口繼承IRepository<T>.
倉儲中的CommandTimeout可以設置查詢超時時間
實體類
創建實體類需繼承BaseDBModel,并且實現里面的抽象方法
1.主鍵配置
GetDBModel_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)返回分庫分表對象,及實現設置分庫分表值.示例:
T4模版生成
項目'LnskyDB.Demo'中的T4目錄下有T4自動生成實體類的代碼.大家可以根據自己的實際情況進行修改配置
'DbHelper.ttinclude'中的'Config.DbConfigs'是用來編寫生成配置的
ConnectionString表示連接字符串
Database是表示數據庫實際名稱
DatabaseName是表示存儲在'appsettings.json'中的名稱
TableNames表示要生成那些表表示全部Name_表示前綴是Name_的
ExcludeTableName表示要排除那些表
ShuffledConfigs表示分庫分表配置存儲表名,ShuffledConfig的鍵值對形式
ShuffledConfig分庫分表具體配置ShuffledData根據那一列分庫分表,MinShuffledTempDate表示最小值
'Entity.tt'是生成實體,倉儲及倉儲接口的實際代碼.大家可以根據自己項目的實際情況修改
原文地址:https://www.cnblogs.com/liningit/p/11059013.html
.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總?http://www.csharpkit.com?
總結
以上是生活随笔為你收集整理的基于Dapper的开源Lambda扩展,且支持分库分表自动生成实体之基础的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 领域驱动设计,让程序员心中有码(八)
- 下一篇: 技术达人“创造营”官宣:Microsof