Cam*_*ker 1 c# linq asp.net-mvc-4 entity-framework-5
我正在开发一个使用ASP.NET MVC 4和Entity Framework 5来跟踪错误和软件更改的票务系统.我需要一种方法从一组可能的数字中选择一个唯一的数字.我的想法是在使用它们并将其分配给支持票据时,从该集合中创建一组可能的数字和标记号码.
我有这个代码用于生成所有可能的票号以供选择,但我希望有前导零,以便所有票号具有相同的长度:
public static class GenerateNumber
{
private static IEnumerable<int> GenerateNumbers(int count)
{
return Enumerable.Range(0, count);
}
public static IEnumerable<string> GenerateTicketNumbers(int count)
{
return GenerateNumbers(count).Select(n => "TN" + n.ToString());
}
}
Run Code Online (Sandbox Code Playgroud)
我希望输出是
IEnumerable<string> ticketNumbers = GenerateNumber.GenerateTicketNumbers(Int32.MaxValue);
这样的:
TN0000000001
.
.
.
TN2147483647
希望我们不需要任何大的东西,Int32.MaxValue因为这意味着我们有太多的错误哈哈.我只想对可用数字的限制保证安全而不是遗憾.也许我们可以使用在解决后重复使用票号的方法.但是,我不知道我对重用的感觉,因为它可能导致稍后引用文档的模糊性.
考虑到这个集合的大小,这是获得唯一票号的最有效方法吗?
在数据库中使用标识列 - 这将自动为您增量.
如果您还需要一个前缀,那么将其存储为单独的varchar列,然后为了显示目的,您可以连接它(如果绝对必要,则使用必需的前导零).试图在varchar字段中存储一个递增的数字,有一天会在你的屁股中咬你.
作为旁注,为什么领先的零?如果我要修票,我想用票号注释我的代码.领先的零只是一种痛苦 - 为什么不只是拥有TN-123并且数量会根据需要变大?
| 归档时间: |
|
| 查看次数: |
1116 次 |
| 最近记录: |