![](/img/trans.png)
[英]EF Core: The INSERT statement conflicted with the FOREIGN KEY constraint
[英]The INSERT statement conflicted with the FOREIGN KEY using EF Core
我正在尝试使用Microsoft.AspNetCore.Identity
生成 id 来填充userData.AspNetUserID
属性,我在控制台中收到此错误消息:
System.Data.SqlClient.SqlException:INSERT 语句与 FOREIGN KEY 约束“FK_AspNetUserRoles_AspNetUsers_UserId”冲突。 冲突发生在数据库“JET”、表“dbo.AspNetUsers”、“Id”列中。
任何人都可以帮助解决此错误吗?
这是我的代码:
public async Task<IActionResult> CopyUserRole(int id)
{
var result = _context.UserData.Where(m => m.UserDataID == id).FirstOrDefault();
var userData = new UserData();
var email = result.Email.Insert(0, "copy-");
var user = new ApplicationUser { UserName = email, Email = email };
var UserManager = await _userManager.CreateAsync(user, "12345678");
if(!await _roleManager.RoleExistsAsync(result.Role))
{
await _roleManager.CreateAsync(new IdentityRole(result.Role));
}
var success = await _userManager.AddToRoleAsync(user, result.Role);
//userData.UserDataID = 0;
userData.AspNetUserID = user.Id;
userData.DeviceID = result.DeviceID;
userData.PhotoUrl = result.PhotoUrl;
userData.Status = result.Status;
userData.Role = result.Role;
userData.Name = result.Name+" - Copy";
userData.Area = result.Area;
userData.FilePhotoURL1 = result.FilePhotoURL1;
userData.Email = email;
userData.LihatJurnal = result.LihatJurnal;
userData.UserDataArea = result.UserDataArea;
userData.UserDataMenu = result.UserDataMenu;
userData.UserDataGudang = result.UserDataGudang;
userData.UserDataPerkiraan = result.UserDataPerkiraan;
try
{
_context.UserData.Add(userData);
await _context.SaveChangesAsync();
}
catch(Exception Ex)
{
Console.WriteLine("\n ======================== \n");
Console.WriteLine("\n " + Ex + " \n");
Console.WriteLine("\n ======================== \n");
}
return Json(userData);
}
您尝试创建具有相同用户名的用户,这导致user
成为同一用户的实例。 对同一用户调用AddToRoleAsync
会导致错误,因为该用户已经拥有该角色。 您应该尝试使用不同的电子邮件创建用户。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.