我从控制器产生的用户ID以这种方式违反PRIMARY KEY约束无法插入Dublicate主键
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来代替长lastUserId –
如果可以的话,让数据库处理这个问题。使用SQL Server中的IDENTITY列或Oracle中的SEQUENCE来为每个请求提供唯一值 –