日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

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

發(fā)布時(shí)間:2023/12/4 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于Dapper的开源Lambda扩展,且支持分库分表自动生成实体之基础介绍 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

LnskyDB是基于Dapper的Lambda擴(kuò)展,支持按時(shí)間分庫分表,也可以自定義分庫分表方法.而且可以T4生成實(shí)體類免去手寫實(shí)體類的煩惱.

文檔地址:?https://liningit.github.io/LnskyDB/

開源地址:?https://github.com/liningit/LnskyDB

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

倉儲(chǔ)

倉儲(chǔ)的獲取有兩種方式一種是調(diào)用RepositoryFactory.Create<T>()方法創(chuàng)建,還有一種是創(chuàng)建倉儲(chǔ)類繼承Repository<T>.如果需要接口也可以創(chuàng)建接口繼承IRepository<T>.CommandTimeout可以設(shè)置查詢超時(shí)時(shí)間

實(shí)體類

創(chuàng)建實(shí)體類需繼承BaseDBModel,并且實(shí)現(xiàn)里面的抽象方法

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)返回表的自增列,以及設(shè)置自增列值,如有自增列則必須. 示例:

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)返回分庫分表對(duì)象,及實(shí)現(xiàn)設(shè)置分庫分表值.示例:

錯(cuò)誤日志

DBTool.Error事件,當(dāng)執(zhí)行sql發(fā)生異常會(huì)觸發(fā)DBTool.Error事件

T4模版生成

項(xiàng)目'LnskyDB.Demo'中的T4目錄下有T4自動(dòng)生成實(shí)體類的代碼.大家可以根據(jù)自己的實(shí)際情況進(jìn)行修改配置

  • ConnectionString表示連接字符串

  • Database是表示數(shù)據(jù)庫實(shí)際名稱

  • DatabaseName是表示存儲(chǔ)在'appsettings.json'中的名稱

  • TableNames表示要生成那些表表示全部Name_表示前綴是Name_的

  • ExcludeTableName表示要排除那些表

  • ShuffledConfigs表示分庫分表配置存儲(chǔ)表名,ShuffledConfig的鍵值對(duì)形式

  • ShuffledConfig分庫分表具體配置ShuffledData根據(jù)那一列分庫分表,MinShuffledTempDate表示最小值

  • 'Entity.tt'是生成實(shí)體,倉儲(chǔ)及倉儲(chǔ)接口的實(shí)際代碼.大家可以根據(jù)自己項(xiàng)目的實(shí)際情況修改

    創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

    總結(jié)

    以上是生活随笔為你收集整理的基于Dapper的开源Lambda扩展,且支持分库分表自动生成实体之基础介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。