123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- using CommonUnit.Base;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace CommonUnit.IDGenerator
- {
- /// <summary>
- /// 主键生成接口
- /// </summary>
- public interface IIDGenerator
- {
- /// <summary>
- /// 生成新主键
- /// </summary>
- /// <param name="parm">生成主键参数</param>
- /// <returns>生成后新主键</returns>
- string GeneratNewID(IDGenerateParm parm);
- }
- /// <summary>
- /// 主键生成参数
- /// </summary>
- public class IDGenerateParm{
- /// <summary>
- /// 主键基值(新主键在此基础上按规则增加)
- /// </summary>
- public string BaseValue { get; set; }
- /// <summary>
- /// 主键长度
- /// </summary>
- public int IDLength { get; set; }
- }
- /// <summary>
- /// 简单主键生成器
- /// </summary>
- public class SampleIDGenerator : IIDGenerator
- {
- /// <summary>
- /// 生成新主键
- /// </summary>
- /// <param name="parm">生成主键参数</param>
- /// <returns>生成后新主键</returns>
- string IIDGenerator.GeneratNewID(IDGenerateParm parm)
- {
- var ret = "";
- if (StringHelper.IsNullOrEmpty(parm.BaseValue)) parm.BaseValue = "0";
- int li_bv;
- if (!int.TryParse(parm.BaseValue,out li_bv)) throw new Exception("参数错误,简单生成器仅能生成数字字符串!");
- if (parm.IDLength == 0) parm.IDLength = 5;
- var li_id=(int)Math.Pow(10, parm.IDLength);
- li_id = li_id + li_bv + 1;
- return li_id.ToString().Substring(1);
- }
- }
- }
|