【发布时间】:2014-02-28 05:32:54
【问题描述】:
我正在从控制器以这种方式生成用户 ID
long lastUserId = 0;
var userProfile = from m in db.UserProfiles select m;
userProfile = userProfile.Where(s => s.DbType == "OFFLINE");
foreach (var c in userProfile)
{
lastUserId = c.UserId;
}
if (lastUserId != 0)
{
lastUserId = lastUserId + 1;
}
else
{
lastUserId = 1000001;
}
当任何两个人同时注册并点击控制器时,我得到了违反密钥的错误现在该怎么办?
【问题讨论】:
-
您可以使用 GUID 代替 long lastUserId
-
如果可以的话,让数据库来处理。在 SQL Server 中使用
IDENTITY列或在 Oracle 中使用SEQUENCE为每个请求提供唯一值
标签: asp.net-mvc asp.net-mvc-4 primary-key