如何解决根据变量生成唯一代码
我正在使用的系统上已经有一个自动代码生成器。
此代码生成器将作为参数接收的字符串与数据库中的数值一一合并,然后返回它们。
public async Task<APIResult> AutoCodeGenerate(string screenCode)
{
AutoCode entity = await uow.Repository<AutoCode>().Get().
FirstOrDefaultAsync(x => x.ScreenCode == screenCode);
if (entity != null)
{
int lastCodeNumber = ++entity.LastCodeNumber;
var code = String.Format(entity.CodeFormat,lastCodeNumber);
entity.LastCodeNumber = lastCodeNumber;
await uow.SaveChangesAsync();
return new APIResult { Data = code,Message = null };
}
else
{
return new APIResult { Data = null,Message = null };
}
}
现在我要做的是,除了作为参数的字符串外,还有从上下文中捕获的数据。现在,根据这些数据,自动生成的代码应该是唯一的并且是增量代码。
例如:
AutoCodeGenerator(“ EXP”)和上下文数据为:“ 01”,此方法应返回01-EXP-001。
AutoCodeGenerator(“ EXP”),上下文数据为:“ 02”,此方法应返回02-EXP-001。
自动编码表也是:
public class AutoCode
{
/// <summary>
/// Fixed screen codes
/// <see cref="Const.ScreenCodes"/>
/// </summary>
[Column(TypeName = "char(5)")]
public string ScreenCode { get; set; }
/// <summary>
/// Sample code format = "TC-{0}-RS"
/// </summary>
[Required,MaxLength(20)]
public string CodeFormat { get; set; }
public int LastCodeNumber { get; set; }
public string Slug { get; set; }
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。