【发布时间】:2018-07-22 17:51:37
【问题描述】:
尝试使用 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();
}
【问题讨论】:
-
删除后有没有试过commit?这是因为您尝试了相同的主键插入。
-
对于包含掩码值的异常,看看使用EnableSensitiveDataLogging方法是否有帮助。
标签: entity-framework asp.net-core ef-core-2.1