<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      sqlsugar 分表

      一、首字母分表

      1. 安裝 hyjiacan.pinyin4net
        > dotnet add package hyjiacan.pinyin4net --version 4.1.1
        
      2. 創建分表服務
        /// <summary>
        /// Apricot 分表
        /// </summary>
        public class ApricotSplitTableService : ISplitTableService
        {
           /// <summary>
           /// sqlsugar 默認分表
           /// </summary>
           /// <param name="db"></param>
           /// <param name="EntityInfo"></param>
           /// <param name="tableInfos"></param>
           /// <returns></returns>
           public List<SplitTableInfo> GetAllTables(ISqlSugarClient db, EntityInfo EntityInfo, List<DbTableInfo> tableInfos)
           {
              List<SplitTableInfo> result = new List<SplitTableInfo>();
              foreach (var item in tableInfos)
              {
                    if (item.Name.Contains("apricot")) //區分標識如果不用正則符復雜一些,防止找錯表
                    {
                       SplitTableInfo data = new SplitTableInfo()
                       {
                          TableName = item.Name //要用item.name不要寫錯了
                       };
                       result.Add(data);
                    }
              }
              return result.OrderBy(it => it.TableName).ToList();//打斷點看一下有沒有查出所有分表
           }
        
           /// <summary>
           /// sqlsugar 默認分表
           /// </summary>
           /// <param name="db"></param>
           /// <param name="entityInfo"></param>
           /// <param name="splitType"></param>
           /// <param name="entityValue"></param>
           /// <returns></returns>
           public object GetFieldValue(ISqlSugarClient db, EntityInfo entityInfo, SplitType splitType, object entityValue)
           {
              var column = entityInfo.Columns.FirstOrDefault(it => it.PropertyInfo.GetCustomAttribute<SplitFieldAttribute>() != null);
        
              var value = column.PropertyInfo.GetValue(entityValue, null);
        
              return value;
           }
        
           /// <summary>
           /// sqlsugar 默認分表
           /// </summary>
           /// <param name="db"></param>
           /// <param name="entityInfo"></param>
           /// <returns></returns>
           public string GetTableName(ISqlSugarClient db, EntityInfo entityInfo)
           {
              return entityInfo.DbTableName;
           }
        
           /// <summary>
           /// sqlsugar 默認分表
           /// </summary>
           /// <param name="db"></param>
           /// <param name="entityInfo"></param>
           /// <param name="type"></param>
           /// <returns></returns>
           public string GetTableName(ISqlSugarClient db, EntityInfo entityInfo, SplitType type)
           {
              return entityInfo.DbTableName;//目前模式少不需要分類(自帶的有 日、周、月、季、年等進行區分)
           }
        
           /// <summary>
           /// 自定義分表
           /// </summary>
           /// <param name="db"></param>
           /// <param name="entityInfo"></param>
           /// <param name="splitType"></param>
           /// <param name="fieldValue"></param>
           /// <returns></returns>
           public string GetTableName(ISqlSugarClient db, EntityInfo entityInfo, SplitType splitType, object fieldValue)
           {
              return $"{entityInfo.DbTableName}_{GetPinyin($"{fieldValue}")}"; //根據值按首字母
           }
           
           /// <summary>
           /// 獲取拼音首字母
           /// </summary>
           /// <param name="data"></param>
           /// <returns></returns>
           private static char GetPinyin(string data)
           {
              return Pinyin4Net.GetPinyin(data, PinyinFormat.None).FirstOrDefault();
           }
        }
        
      3. 創建表實體
        // 指定自定義分表
        [SplitTable(splitType: SplitType._Custom01, CustomSplitTableService = typeof(ApricotSplitTableService))]
        public class Apricot
        {
           [SugarColumn(IsPrimaryKey = true)]
           public long Id { get; set; }
        
           // [SplitField] //標識一下分表字段
           public string Name { get; set; }
        
           // 分表字段、并且不存庫
           [SplitField, SugarColumn(IsIgnore = true)]
           public string SplitName { get; set; }
        
           public DateTime CreateTime { get; set; }
        }
        
      4. 寫入數據 自動分表
        using var scope = app.Services.CreateScope();
        
        var context = scope.ServiceProvider.GetRequiredService<ISqlSugarClient>();
        
        var datas = new List<Apricot>()
           {
              new Apricot()
              {
                 CreateTime = DateTime.Now,
                 Name="測試",
                 SplitName ="測試"
              } ,
              new Apricot()
              {
                 CreateTime = DateTime.Now,
                 Name="分表",
                 SplitName ="分表"
              },
              new Apricot()
              {
                 CreateTime = DateTime.Now,
                 Name="數據",
                 SplitName ="數據"
              }
           };
        
        List<long> ids = context.CopyNew().Insertable(datas).SplitTable().ExecuteReturnSnowflakeIdList();
        
      5. 分表查詢
        using var scope = app.Services.CreateScope();
        
        var context = scope.ServiceProvider.GetRequiredService<ISqlSugarClient>();
        
        var apricot = await context.Queryable<Apricot>().Where(p => p.Name == "測試").SplitTable().ToListAsync();
        
      6. 參考
      posted @ 2024-07-02 14:55  1764564459  閱讀(115)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 加勒比无码人妻东京热| 视频一区二区不中文字幕| AV人摸人人人澡人人超碰| 日韩精品人妻av一区二区三区 | 免费的特黄特色大片| 国产成人无码免费视频在线| 国产亚洲一区二区三不卡| 国产91成人亚洲综合在线| 国产资源精品中文字幕| 男人扒女人添高潮视频| 亚洲日本乱码熟妇色精品| 日本一区二区三区专线| 亚洲精品一区二区三区在线观看| 亚洲男女羞羞无遮挡久久丫| 狠狠色噜噜狠狠狠狠av不卡| 男女动态无遮挡动态图| 蜜臀久久99精品久久久久久 | 精品国产一区二区三区四区阿崩 | 亚洲av色香蕉一二三区| 国产99视频精品免费专区| 久久精产国品一二三产品| 狠狠色噜噜狠狠狠狠777米奇| 狠狠色综合久久丁香婷婷 | 国产免费网站看v片元遮挡| 毛片内射久久久一区| 尤物yw193无码点击进入| 99国产精品自在自在久久| 东海县| 久久久久青草线蕉亚洲| 国产熟女一区二区五月婷| 日韩精品成人网页视频在线 | 亚洲成A人片在线观看无码不卡| 99久久婷婷国产综合精品青草漫画| 在线播放深夜精品三级| 亚洲人成网站18禁止| 亚洲男人的天堂一区二区| 丰满人妻熟妇乱精品视频| 女人色熟女乱| 怡春院久久国语视频免费| 成人精品区| 亚洲精品午夜国产VA久久成人|