如何解决与一对多关系注册新用户
我正在使用ASP Net core 3.1 Identity 。我的情况如下:我创建了一个Employee类,该类从IdentityUser继承。员工包含一些其他属性。其中之一是位置。 到目前为止,我有以下内容
public class Employee: IdentityUser
{
public string Name { get; set; }
public Position JobPosition { get; set; }
}
如此处所示,我与表位置有关系(FK)。目的是在我想要的JobPosition上注册新员工。 我已经更新了注册模板以包含JobPosition,这里重要的部分是 OnPostAsync
public async Task<IActionResult> OnPostAsync(string returnUrl = null)
{
returnUrl = returnUrl ?? Url.Content("~/");
ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList();
var jobPosition = await _service.Read(JobPositionId);
if (ModelState.IsValid)
{
var user = new Employee{
UserName = Input.UserName,Email = Input.Email,JobPosition = jobPosition,Name = Input.Name,};
var result = await _userManager.CreateAsync(user,Input.Password);
....rest of the code
我从正在使用的db服务中获取JobPosition对象,然后实例化Employee类,但是当它将新用户注册到db时,将显示以下消息:
在处理请求时发生未处理的异常。 SqlException:当IDENTITY_INSERT设置为OFF时,无法为表'Position'中的Identity列插入显式值。 Microsoft.Data.SqlClient.SqlCommand + c.b__164_0(任务结果) DbUpdateException:更新条目时发生错误。有关详细信息,请参见内部异常。 Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection连接,CancelationToken cancelToken)
据我了解,它正在尝试在Employee表和Position表中创建一个新条目(我认为是级联数据库插入),但是我只想通过FK链接这两个实体。 我的意思是,使用提供的数据创建一个新员工(我有一个包含所有职位的下拉组件,我从那里选择一个职位并分配给员工),但JobPosition应该是FK位置表中的新行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。