我在我的数据库中有一个注册表,其中的字段RegistrationNumber
需要唯一。保证数据库中的唯一值
我想知道什么是最好的方法来保证我会在每种情况下提供唯一的编号。
我要做的就是在我的Repository
我保存新的注册,是这样的:
void IMyRepository.Repository(Registration registration)
{
registration.RegistrationNumber = _getNewRegistrationNumber();
dbContext.SaveChanges();
}
private string _getNewRegistrationNumber()
{
// what to do? get last registration number and increment? it could be
// either integers or integers mixed with letters.
}
我担心什么是如果两个人在同一时间完成注册表格,我怕在第一个到达dbContext.SaveChanges();
之前,第二个将进入_getNewRegistrationNumber()
函数,并且可能获得相同的RegistrationNumber
。
有没有建议吗?
[编辑] :GUID过长
创建一个GUID可能是最好还是让DB分配一个自动递增值。 – ChiefTwoPencils
https://www.bing.com/search?q =数据库中的保证+独特+值+ ......有人试图实现这样的事情的可能性很小......甚至可能创建了诸如独特密钥之类的数据库功能或自动增量字段... –
@ChiefTwoPencils我喜欢这个主意,但我希望它是一个字符串值,因为所有的registrationNumbers都应该具有相同的长度。 – joks