当尝试使用EF将用户插入AspNetUsers表时,出现以下错误:
Microsoft.EntityFrameworkCore.DbUpdateException:'发生了错误 在更新条目时。有关详细信息,请参见内部异常。'
SqlException:违反******约束'******'。无法插入 对象“ ******”中的重复键。重复的键值为******。 该声明已终止。
该错误是逐字记录的(它实际上显示了星号)。在插入用户之前,我已明确删除它们,因此我不知道为什么会收到此错误。
删除用户的代码
foreach (var user in globalUsers)
{
if (rdb.Users.Any(u => u.Email == user.Email))
{
var existingUserInDb = rdb.Users.First(u => u.Email == user.Email);
rdb.Users.Remove(existingUserInDb);
await rdb.SaveChangesAsync();
}
}
添加新用户的代码
foreach (var gu in globalUsers)
{
rdb.Users.Add(gu);
await rdb.SaveChangesAsync();
}
答案 0 :(得分:1)
问题出在以下方面:
我通过在插入用户时创建新的用户ID解决了该问题。
foreach (var gu in globalUsers)
{
gu.Id = Guid.NewGuid().ToString();
rdb.Users.Add(gu);
await rdb.SaveChangesAsync();
}