Ejemplo n.º 1
0
        /// <summary>根据前缀生成数字编码</summary>
        /// <param name="entityTableName">实体数据表</param>
        /// <param name="prefixCode">前缀编号</param>
        /// <param name="expression">规则表达式</param>
        /// <returns>数字编码</returns>
        public string GenerateCodeByPrefixCode(string entityTableName, string prefixCode, string expression)
        {
            // 获取前缀
            string prefix = DigitalNumberScript.RunPrefixScript(expression, prefixCode.ToUpper(), DateTime.Now);

            // 根据前缀信息查询当前最大的编号
            Dictionary <string, object> args = new Dictionary <string, object>();

            args.Add("EntityTableName", entityTableName);
            args.Add("Prefix", prefix);

            int seed = Convert.ToInt32(this.ibatisMapper.QueryForObject(StringHelper.ToProcedurePrefix(string.Format("{0}_GetMaxSeedByPrefix", tableName)), args));

            return(DigitalNumberScript.RunScript(expression, prefixCode, DateTime.Now, ref seed));
        }